Android TXT文件读写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android TXT文件读写相关的知识,希望对你有一定的参考价值。

1.我希望在原文件的尾部 ,写入新的数据
2.每次写入数据会和原来的数据 有空格或者 换行吗

public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String fileName = "/sdcard/y.txt";//文件路径
// 也可以用String fileName = "mnt/sdcard/Y.txt";
String res = "";
try
FileInputStream fin = new FileInputStream(fileName);
// FileInputStream fin = openFileInput(fileName);
// 用这个就不行了,必须用FileInputStream
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");////依Y.txt的编码类型选择合适的编码,如果不调整会乱码
fin.close();//关闭资源
System.out.println("res--->"+res);
int a=Integer.parseInt(res.substring(3, 5));
int b=Integer.parseInt(res.substring(8, 10));
System.out.println(a+"res--->"+b);//获取的a.b
catch (Exception e)
e.printStackTrace();


希望能解决您的问题。
参考技术A 你可以手动换一下啊 参考技术B 可以使用inputstrem来写 然后用stringbuff中的apenn方法 这样就可以接在一起了 要不要空格或者换行那还不是你要不要的问题

android 如何读写文件?

我百度了很多方法 有在assent里的 有res里的 但是我发现很多方法都是只能读不能写的 但我需要在一个地方放.txt文件 然后我既可以读取这个文件 又可以写入这个文件 有什么方法呢?方便给我相信的写一下嘛?

读文件:

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

参考技术A

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

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

    通过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())没有太大区别。

追问

追答

你可以先把myfile.txt放在assets下,然后在初始化的时候再用我附件里面的copyFile示例代码拷贝到Context.getFilesDir()目录下。然后就可以读取和写入了。

本回答被提问者和网友采纳

以上是关于Android TXT文件读写的主要内容,如果未能解决你的问题,请参考以下文章

android 如何读写文件?

Android文件流操作读写

Android中对文件的读写进行操作

数据清洗文件操作--csv txt文件读写excel文件读写数据库文件读写

读写txt文件

python 简单的txt文件读写