我在文件夹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();
答案 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();
}
}