在我之前的線程中,我忘記向人們展示我曾試圖自己嘗試這一點,請放心,我花了過去2個小時試圖解決這個愚蠢的問題。加載並保存到txt文件
我需要做到以下幾點:
- 搜索名爲 「file.txt的」 文件中,如果null,則創建它。
- 閱讀文件,找到整數(應該是唯一在整個文件)
- 如果整數不存在,則創建它並將其設置爲1
- 如果它已經存在再加入1並再次保存
- 再次打開文件,獲取整數並將其打印到控制檯。
這是據我設法:
package science;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
public class DumpData {
static void writeStringToFile(String gender, String securityLevel){
try {
File file = new File(gender + securityLevel + ".txt");
//file.getParentFile().mkdirs();
PrintWriter pr = new PrintWriter(file);
FileInputStream fs = new FileInputStream(gender + securityLevel + ".txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
if (br.readLine() == null) {
pr.println("" + 0);
}
//String first = br.readLine();
//System.out.println(first);
try{
String first = br.readLine();
int num = Integer.parseInt(first);
int add = (num + 1);
pr.println("" + add);
pr.close();
System.out.println(num);
} catch (NumberFormatException e) {
// not an integer!
System.out.println("error");
System.out.println(br.readLine());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我一直得到這個消息「錯誤」打印到控制檯,並與更多的檢查,我發現沒有什麼是被保存到.txt文件。每當執行該方法時,我完全期望我的代碼將1添加到文件中的int中。
更改代碼'趕上(例外五){..'爲'趕上(例外五){ e.printStackTrace(); //非常翔實! ..' –
嘗試打印出'first',然後再解析它。我的猜測是你會看到爲什麼數字不解析... –
發佈你正在使用的文件的例子。 – Makky