在我之前的帖子中,我忘了向人们展示我自己试图尝试这一点,请放心,过去2个小时我都试图解决这个愚蠢的问题。
我需要做以下事情:
这是我设法得到的:
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。
答案 0 :(得分:1)
你试图读两行
if (br.readLine() == null) { <-- first time
pr.println("" + 0);
}
//String first = br.readLine();
//System.out.println(first);
try{
String first = br.readLine(); <-- second time
第二次失败,因为 没有第二行。
而只是这样做
String line;
while ((line = br.readLine()) != null){
int num = Integer.parseInt(line.trim());
...
}
您不需要第一个if语句
答案 1 :(得分:0)