【问题标题】:In Java, whenever I run my code, my txt file gets wiped在 Java 中,每当我运行我的代码时,我的 txt 文件都会被擦除
【发布时间】:2014-03-16 02:08:50
【问题描述】:

每当我运行我的代码时,inv.txt 文件从 25 行字符 1 变为没有,有人能告诉我我做错了什么吗? PS主类包括inventory.addItem();

 public class inventory {
File inventory = new File("Resources/inv.txt");
File db = new File("Resources/db.txt");
FileWriter write;
StringBuilder writethis;

public void addItem(int item, int slot){
    int i;
    Scanner scan = null;
    try {
        scan = new Scanner(inventory);
    } catch (FileNotFoundException e) {

        e.printStackTrace();
    }
    try {
        write = new FileWriter(inventory);
    } catch (IOException e) {

        e.printStackTrace();
    }
    for(i = 1; i < slot; i++)writethis.append(scan.nextLine());
    System.out.println(writethis.toString());
}
}

【问题讨论】:

  • 呃,你在哪里使用db
  • @fge 在此方法中无处,我正在以不同的方法使用它。

标签: java file-io filewriter


【解决方案1】:

使用write = new FileWriter(inventory, true);

它将数据附加到现有文件。有关详细信息,请参阅FileWriter Constructor 上的文档。

【讨论】:

  • 不是这样,因为我不希望它追加,我什至不尝试在我的代码中写入文件。
  • @drdavehere 是的,但是一旦到达该行,它将清除文件。无论它是否写入。
  • @imtheman 真的吗?谢谢!我想我会在我读完文件等之后放那部分代码。
  • 实际上当您调用new FileWriter(inventory); 时会创建一个新的空文件。 new FileWriter(inventory, true); 将阻止您的程序创建新文件。
  • 你真的应该考虑使用新的 API;例如,Files.newBufferedWriter()。使用正确的选项,您将选择附加到文件,如果它不存在则创建它等等。抛弃旧的文件 API。
猜你喜欢
  • 2021-10-23
  • 2020-03-29
  • 2023-01-02
  • 2021-10-14
  • 2021-02-25
  • 2018-10-07
  • 1970-01-01
  • 2021-04-04
  • 2020-10-11
相关资源
最近更新 更多