[英]How to write text to a file on external storage on android?
在Android设备上向文件中写入一些文本似乎是一项主要工作。 从此处给出的答案开始,我已将以下代码实现到我的单个“ Hello-World”活动中:
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(this.openFileOutput("config.txt", Context.MODE_PRIVATE));
outputStreamWriter.write("lalala");
outputStreamWriter.close();
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
这不会引发异常,但似乎可以工作。 但是,有没有一种方法可以“查看”使用Android上的File Manager
创建的File Manager
? 该代码段似乎写入了与应用程序本身相关的android文件系统上的“秘密”位置(通过使用this.openFileOutput
进行this.openFileOutput
)。
咨询不同的google-links( this 和this 和this ),我想出了以下代码:
File file = new File(this.getExternalFilesDir("temp"), "testfile.txt");
FileOutputStream fileOutput = openFileOutput(file.getName(), Context.MODE_WORLD_WRITEABLE);
fileOutput.write("lalala");
fileOutput.close();
引发错误
Error:(55, 19) error: no suitable method found for write(String) method FileOutputStream.write(int) is not applicable (actual argument String cannot be converted to int by method invocation conversion) method FileOutputStream.write(byte[],int,int) is not applicable (actual and formal argument lists differ in length) method OutputStream.write(int) is not applicable (actual argument String cannot be converted to int by method invocation conversion) method OutputStream.write(byte[],int,int) is not applicable (actual and formal argument lists differ in length) method OutputStream.write(byte[]) is not applicable (actual argument String cannot be converted to byte[] by method invocation conversion)
那么如何做到这一点呢?
附带说明:这仅用于调试/教育目的,并不打算成为最终应用程序的一部分!
明确说明:我想在使用FileManager可以看到的temp
目录中创建文件( temp
目录与“ My Documents
,“ Music
,“ DCIM
,“ Download
”等处于同一级别)。
但是,有没有一种方法可以“查看”使用Android上的文件管理器创建的文件?
我不确定您指的是“文件管理器”,因为Android确实没有。 但是,您正在写入应用程序的内部存储 ,这是该应用程序专用的。 除非在具有root用户权限的设备上以及通过一些笨拙的Android SDK工具,否则其他应用或普通用户都无法查看它。
那么如何做到这一点呢?
File file = new File(this.getExternalFilesDir(null), "testfile.txt");
FileOutputStream fileOutput = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutput);
outputStreamWriter.write("lalala");
outputStreamWriter.flush();
fileOutput.getFD().sync();
outputStreamWriter.close();
也:
请在后台线程上执行此工作
在Android 4.3(API级别18)和WRITE_EXTERNAL_STORAGE
版本的设备上,您需要持有WRITE_EXTERNAL_STORAGE
权限才能使用外部存储
如果您还希望此文件在设备或开发机器上的文件管理器中快速显示,请在关闭文件后使用此文件:
MediaScannerConnection.scanFile(
this,
new String[]{file.getAbsolutePath()},
null,
null);
( this
是一些Context
,例如Activity
或Service
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.