android 如何读写文件?
我百度了很多方法有在assent里的有res里的但是我发现很多方法都是只能读不能写的但我需要在一个地方放.txt文件然后我既可以读取这个文件又可以写入这个文件有什么方法呢...
我百度了很多方法 有在assent里的 有res里的 但是我发现很多方法都是只能读不能写的 但我需要在一个地方放.txt文件 然后我既可以读取这个文件 又可以写入这个文件 有什么方法呢?方便给我相信的写一下嘛?
展开
2个回答
展开全部
读文件:
1、通过File获取文件
2、打开输入流,读取文件
写文件:
1、创建文件
2、打开输出流,写入文件内容
示例:
读文件:
String content = ""; //文件内容字符串
//通过路径/sdcard/foo.txt打开文件
File file = new File("/sdcard/foo.txt");
try {
InputStream instream = new FileInputStream(file);//读取输入流
InputStreamReader inputreader = new InputStreamReader(instream);//设置流读取方式
BufferedReader buffreader = new BufferedReader(inputreader);
while (( line = buffreader.readLine()) != null) {
content += line + "\n";//读取的文件内容
}
}catch(Exception ex){
}
写文件:
File file = new File("/sdcard/foo.txt");//
if(!file.exists())
file.createNewFile();//如果文件不存在,创建foo.txt
try {
OutputStream outstream = new FileOutputStream(file);//设置输出流
OutputStreamWriter out = new OutputStreamWriter(outstream);//设置内容输出方式
out.write("文字内容");//输出内容到文件中
out.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
展开全部
有两个地方是可以给你放东西的:
你应用程序自己的内部存储空间
通过Context.getFilesDir().getAbsolutePath()来获得目录。
SD卡
通过Environment.getExternalStorageDirectory().getAbsolutePath()获得根目录。SD卡中还有一个应用程序专属目录(类似上面的1),通过Context.getExternalFilesDir(null)获得。
所以你需要做的是在这两个地方去读取或者写入文件。写入方式同一般java文件读写,这个我想不用我再讲了。你也可以看一下上面几个API的文档,写得很清楚。虽然是英语,但都特别通俗,你肯定可以读懂。
更多追问追答
追问
额 对不起我看你第一个方法看起来比较简单 但是...不太懂Context.getFilesDir().getAbsolutePath()来获得目录。。我是先要把我的.txt file 复制粘贴到某个地方。。。然后告诉java这个文件的目录吧?? 为何要反过来获得目录?
追答
Context.getFilesDir()是系统分配给你的目录(其实一般就是“/data/data/你应用程序的包名”),在内部存储空间,内部存储空间的其他区域你没有root权限是不能随便访问的。
你可以在这个目录下创建一个文件,然后把你的文件拷贝进去,然后再修改。这是通过程序拷贝文件到内部存储空间的一般做法。
你要手工拷贝的话,用adb可以,但是要有root权限。
SD卡不存在这些限制。随便你折腾,通过Context.getExternalFilesDir(null)获得的目录会随着你的应用程序的卸载而自动删除,别的和SD根目录(Environment.getExternalStorageDirectory())没有太大区别。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询