在我之前的线程中,我忘记向人们展示我曾试图自己尝试这一点,请放心,我花了过去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