我想读取我在另一个活动中使用 OutputStreamWriter 编写的文本文件。这是我在Sale.java中的readFromFile方法:
private int readFromFile(String request) {
int res = 0;
try {
//InputStream inputStream = openFileInput("dalassnums.txt");
File file=new File("dalassnums.txt");
InputStream inputStream = new FileInputStream(file);
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
while ( (receiveString = bufferedReader.readLine()) != null ) {
String s=bufferedReader.readLine();
if(receiveString==request) {
res=Integer.valueOf(s);
break;
}
}
inputStream.close();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
res=0;
} catch (IOException e) {
//Log.e("login activity", "Can not read file: " + e.toString());
}
return res;
}
这是 MainActivity 中的 writeToFile 方法.java:
private void writeToFile2(String numchar) {
try {
//File file=new File("dalassnums.txt");
//OutputStream outputStream=new FileOutputStream(file);
OutputStreamWriter outputStreamWriter;
if(numchar=="1") outputStreamWriter = new OutputStreamWriter(openFileOutput("dalassnums.txt", Context.MODE_PRIVATE));
else outputStreamWriter = new OutputStreamWriter(openFileOutput("dalassnums.txt", Context.MODE_APPEND));
for(int k=0; k<imageNums.size();k+=2){
outputStreamWriter.append(imageNums.get(k));
outputStreamWriter.append("n");
outputStreamWriter.append(imageNums.get(k+1));
outputStreamWriter.append("n");
}
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
执行 readFromFile 时,它返回 0,表示找不到文件;我读过关于传递上下文的信息,但我不知道要传递什么上下文;并想知道除了传递上下文之外是否有其他方法。任何帮助将不胜感激。
在readFromFile
中使用:openFileInput
,例如:
openFileInput() 和/或 openFileOutput() I/O 流静默失败
另一个问题是这是无效的:
if(numchar=="1")
你应该
if(numchar.equals("1"))
否则,您将比较引用值而不是字符串的内容