【发布时间】:2013-12-14 12:06:19
【问题描述】:
在我之前的帖子中,我忘记向人们展示我自己尝试过这个,请放心,我已经花了 2 个小时试图解决这个愚蠢的问题。
我需要做以下事情:
- 搜索名为“file.txt”的文件,如果为空,则创建它。
- 读取文件找整数(应该是整个文件中唯一的东西)
- 如果整数不存在,则创建它并将其设置为 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 文件中。我完全希望我的代码每次执行该方法时都会在文件中的 int 中添加 1。
【问题讨论】:
-
将
catch (Exception e) { ..形式的代码修改为catch (Exception e) { e.printStackTrace(); // very informative! .. -
在解析之前尝试打印出
first。我猜你会明白为什么这个数字没有解析...... -
发布您在该示例中使用的文件。
-
与其提出新问题,不如编辑原来的问题以改进它。