在 res/raw 文件夹中写入文本文件

write text file in res/raw folder

我在文件夹 res/raw 中有一个文本文件名称 "pass.txt" 和其中的一些数据我想删除这些数据并在其中输入新数据....是否可以写入数据在上面??否则什么是存储我的文本文件的正确路径,这样我就可以轻松地 read/write 数据......以及从中读取和写入数据的代码是什么?下面是我只能从这个文本文件中读取数据的代码

InputStream fr = getResources().openRawResource(R.raw.pass);
                    BufferedReader br = new BufferedReader(new InputStreamReader(fr));
                    String s=br.readLine().toString().trim();

项目中 raw 目录中包含的资源将打包在 APK 中,并且在运行时不可写。

查看内部或外部数据存储 API 以读写文件。

https://developer.android.com/training/basics/data-storage/files.html

您可以使用 Android 内部存储来读写文件...因为 res/raw 只是只读的..您不能在运行时更改内容。

代码如下:

创建文件

 String MY_FILE_NAME = “mytextfile.txt”;
// Create a new output file stream 
FileOutputStream fileos = openFileOutput(MY_FILE_NAME, Context.MODE_PRIVATE);
// Create a new file input stream.
FileInputStream fileis = openFileInput(My_FILE_NAME);

从文件中读取:

 public void Read(){
static final int READ_BLOCK_SIZE = 100;
try {
            FileInputStream fileIn=openFileInput("mytextfile.txt");
            InputStreamReader InputRead= new InputStreamReader(fileIn);

            char[] inputBuffer= new char[READ_BLOCK_SIZE];
            String s="";
            int charRead;

            while ((charRead=InputRead.read(inputBuffer))>0) {
                // char to string conversion
                String readstring=String.copyValueOf(inputBuffer,0,charRead);
                s +=readstring;                 
            }
            InputRead.close();
            Toast.makeText(getBaseContext(), s,Toast.LENGTH_SHORT).show();

        } catch (Exception e) {
            e.printStackTrace();
        }
}

写入文件:

public void Write(){
try {
        FileOutputStream fileout=openFileOutput("mytextfile.txt", MODE_PRIVATE);
        OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
        outputWriter.write("TEST STRING..");
        outputWriter.close();

        //display file saved message
        Toast.makeText(getBaseContext(), "File saved successfully!",
        Toast.LENGTH_SHORT).show();

    } catch (Exception e) {
        e.printStackTrace();
    }

}