由于我的应用程序,我正在尝试访问一个我填充的文件。我将它存储在手机的内存中,但不存储在应用程序的内部内存中。
我的问题是,当我在电脑上打开文件时(手机通过USB连接),文件不存在。但当我直接从智能手机打开它时,它是可用的,而且不是空的。
我需要这个文件在我的电脑上可用。
在我的清单上:
READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
我尝试过这种方式:
FileWriter outFile = new FileWriter(Environment.getExternalStoragePublicDirectory("my_app/data/file.txt");
PrintWriter out = new PrintWriter(outFile);
out.append("text");
out.flush();
out.close();
而且也是这样:
File file = Environment.getExternalStoragePublicDirectory("my_app/data/file.txt");
FileOutputStream outputStream = context.openFileOutput(file, Context.MODE_WORLD_READABLE);
PrintStream printStream = new PrintStream(outputStream);
printStream.println(text);
printStream.close();
另一种方式
File file = Environment.getExternalStoragePublicDirectory("my_app/data/file.txt");
FileWriter outFile = new FileWriter(file);
BufferedWriter buf = new BufferedWriter(outFile);
buf.write("hey");
buf.close();
outFile.close();
其中一些解决方案有效,但仅在我的手机上,因此无法在世界上阅读,其他解决方案则不起作用。。。
OutPutStreamWriter
、FileWriter
、BufferedWriter
、FileOutputStream
、PrintWriter
…之间有什么区别。。。?我必须选择哪一个?
如何创建公共文件以便直接从计算机访问它?
谢谢你的帮助!
试试这个:
String toWrite = "save me to disk";
File dir = new File(Environment.getExternalStorageDirectory(), INSTALLATION_DIRECTORY);
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(dir, INSTALLATION_FILE);
FileOutputStream out = new FileOutputStream(file );
out.write(toWrite.getBytes());
out.close();