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

时间:2016-12-25 10:43:57

标签: android text-files file-handling

我在文件夹res / raw name“pass.txt”中有一个文本文件,其中有一些数据我要删除这些数据并在其中输入新数据....是否有可能在其上写入数据?否则什么是存储我的文本文件的正确路径,以便我可以轻松地读取/写入数据....以及从中读取和写入数据的代码是什么?下面是我只能通过这个文本文件读取数据的代码

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

2 个答案:

答案 0 :(得分:1)

项目中原始目录中包含的资源将打包在APK中,并且在运行时无法写入。

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

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

答案 1 :(得分:1)

您可以使用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();
    }

}