我正在尝试将.csv文件写入已连接到我的Android Digiland平板电脑的micro SD卡上。每当我尝试将文件写入SD卡时,当我将SD卡插入计算机时,唯一显示在SD卡上的是名为lost.dir的空文件夹。我对此做了一些研究,听起来像lost.dir是一些数据丢失时创建的文件夹。我不确定数据丢失的原因。我确保正确安装和卸载SD卡,我不知道如何解决这个问题。这是我正在使用的代码:
String string =
" \n" + teamNum + "," + matchNum + ","+ gearPoints + "," + climbScored
+ "," + ballsHigh + "," + ballsLow + "," + gearsAuto + "," +
hiBallsAuto + "," + lowBallsAuto + "," + driveForward + "";
if(isSdWriteable()) {
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "scout9000.csv");
try {
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(string.getBytes());
outputStream.close();
} catch (Exception e) {
System.out.println("Error writing file.");
}
}
这是我的isSdWriteable函数:
public boolean isSdWriteable() {
String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
感谢任何帮助。
答案 0 :(得分:0)
Environment.getExternalStorageDirectory()
并不代表您的外部SD卡。 See API ref here:
注意:不要在这里混淆“外部”这个词。这个目录 可以更好地被视为媒体/共享存储。它是一个文件系统 可以容纳相对大量的数据,并且可以共享 所有应用程序(不强制执行权限)。传统上这是 SD卡,但它也可以作为内置存储器实现 与受保护的内部存储区别的设备,可以是 作为文件系统安装在计算机上。
获取外部SD卡更复杂 - 请参阅此处的现有问题: How can I get external SD card path for Android 4.0+?