【发布时间】:2016-03-25 17:55:17
【问题描述】:
我正在尝试在 Android 中保存和读取文本文件。这是从文本文件中读取的文件的一部分:
Scanner fileScanner;
String line = null;
try {
fileScanner = new Scanner(new File("info.txt"));
while (fileScanner.hasNext() || line.contains(personName)) {
line = fileScanner.nextLine();
}
List<String> items = Arrays.asList(line.split("\\s*:\\s*"));
extraInfoTV.setText(items.get(1));
websites = items.get(2).split("\\s*,\\s*");
这是写入文本文件的文件的一部分:
public void saveButton(View v) {
String data = getData();
List<String> linesData;
linesData = new ArrayList<>();
if (data != null) for(int i = 0; i < data.split("\n").length; i++){ linesData.add(data.split("\n")[i]); }
for (int i = 0; i < linesData.size(); i++) {
if (linesData.get(i).contains(personName)) linesData.remove(i);
}
String submit = personNameTV.getText().toString() + ":" + extraInfoTV.getText().toString()
+ ":" + websitesTV.getText().toString();
linesData.add(submit);
String finalSubmit = "";
for (int i = 0; i < linesData.size(); i++){
finalSubmit += linesData.get(i) + "\n";
}
saveData(finalSubmit);
Intent i = new Intent(EditActivity.this, PersonActivity.class);
i.putExtra("person", personNameTV.getText().toString());
startActivity(i);
}
private String getData() {
try {
String toReturn;
FileInputStream fis = openFileInput("info");
InputStreamReader inputStreamReader = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer();
while ((toReturn=br.readLine()) != null){
sb.append(toReturn + "\n");
}
fis.close();
return sb.toString();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return " ";
}
private void saveData(String s){
try {
FileOutputStream fos = openFileOutput("info", MODE_PRIVATE);
fos.write(s.getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
每当我在我的测试设备上运行它时,当我单击必要的按钮进行保存(按钮使用方法 saveButton)时,当我转到读取文本文件的 Activity 时,我找不到我写的内容。我究竟做错了什么?提前致谢。
【问题讨论】: