gpt4 book ai didi

java - Printwriter 输出(即 txt)没有任何内容,为什么?

转载 作者:行者123 更新时间:2023-12-02 02:31:19 25 4
gpt4 key购买 nike

我有一个输入txt文件,主要包含如下字符串:

  1. GET:Mark Joseph Maria,1997,BB
  2. REG:Lukacs Keto,1989
  3. SET:Lkoaj Mento, 2000"

(数字不在txt中)(所以基本上“GET”后面有3个字符串(+“,”),其他只有2个)+有些数据不应该写入我的output.txt(这就是为什么我把它放在 try block 中)。

Scanner input = new Scanner(new File(inputFileName));
while (input.hasNextLine()){
try {
String s = input.nextLine();
String[] line = new String[2];
line = s.split(":");
String[] adatok = line [1].split(",");

switch(line [0]){
case "REG":
insertCustomer(adatok[0], Integer.parseInt(adatok[1]), adatok[2]);
break;
case "GET":
withdrawCash(adatok[0], Integer.parseInt(adatok[1]));
break;
case "PUT":
depositCash(adatok[0], Integer.parseInt(adatok[1]));
break;
default:
input.nextLine();
break;
}
} catch (Exception e){
input.nextLine();
}
}

您看到方法(insertCustomer、withdrawCash、depositCash)执行“写入output.txt”的操作,但我认为问题出在这里(我测试了这些方法,我认为它们很好)。有人能看出我错在哪里吗?我是Java菜鸟,如果有明显的错误,很抱歉,但这是我的作业,我希望你们能帮助我。

最佳答案

确保您的 PrintWritter 已冲洗并关闭。有时,程序在将更改发送到文件之前就结束了。

您的代码似乎没有任何问题,但我建议一些改进:

替换:

String[] line = new String[2];
line = s.split(":");

与:

String[] line = s.split(":");

因为 split 会返回一个新的 String[],所以你对 new String[2] 的调用将会被浪费。

我还认为您不想忽略错误后的行。因此,您不应在 catch 子句或默认子句上调用 input.nextLine();

关于java - Printwriter 输出(即 txt)没有任何内容,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47035447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com