写一个可在智能手机内存中读取的文件

时间:2013-09-02 08:31:01

标签: android storage android-file

我想通过我的应用程序访问我填写的文件。我将它存储在手机的内存中,但不存储在应用程序的内存中。

我的问题是,当我在PC上打开文件时(通过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();

其中一些解决方案有效,但只能在我的手机上使用,因此它不是世界可读的,有些只是不起作用......

OutPutStreamWriterFileWriterBufferedWriterFileOutputStreamPrintWriter,...之间有什么区别?我必须选择哪一个?

如何创建公共文件以便直接从我的计算机访问它?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

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();