android 如何读写文件?

我百度了很多方法有在assent里的有res里的但是我发现很多方法都是只能读不能写的但我需要在一个地方放.txt文件然后我既可以读取这个文件又可以写入这个文件有什么方法呢... 我百度了很多方法 有在assent里的 有res里的 但是我发现很多方法都是只能读不能写的 但我需要在一个地方放.txt文件 然后我既可以读取这个文件 又可以写入这个文件 有什么方法呢?方便给我相信的写一下嘛? 展开
 我来答
woshidaniel
推荐于2016-04-15 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:960万
展开全部

读文件:

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();
        }
betterswc
推荐于2016-07-05 · TA获得超过770个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:225万
展开全部

有两个地方是可以给你放东西的:

  1. 你应用程序自己的内部存储空间

    通过Context.getFilesDir().getAbsolutePath()来获得目录。

  2. 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())没有太大区别。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式