Java-如果存在文本文件,则创建新文件,并添加;1“;

Java-如果存在文本文件,则创建新文件,并添加;1“;,java,count,append,Java,Count,Append,如何更改代码以查找现有的“Library.txt”文件,如果存在,则创建一个名为“Library1”的新文件,等等 我目前有以下代码: if(Menu.menuChoice == 7 && Library.ManualList.isEmpty()){ System.out.println(Messages.addManualFirst); Menu.displayMenu();

如何更改代码以查找现有的“Library.txt”文件,如果存在,则创建一个名为“Library1”的新文件,等等

我目前有以下代码:

            if(Menu.menuChoice == 7 && Library.ManualList.isEmpty()){
                System.out.println(Messages.addManualFirst);
                Menu.displayMenu();
            }

            else if(Menu.menuChoice == 7){
                Library.displayManualList();
                boolean saveYesNo = Console.readYesNo("\nThe manualKeeper® app is able to save your current library to a '.txt' \nfile in your workspace directory.\n\nWould you like to save the current library? (Y/N):\n");
                if(saveYesNo){
                    try {
                        File file = new File("Library.txt");
                        file.delete();
                        file.createNewFile();
                        FileWriter fw = new FileWriter(file, true);
                        PrintWriter pw = new PrintWriter(fw);

                        for (int i = 0; i < Library.ManualList.size(); i++){
                            pw.println("\n-------------------- Index Number: " + i + " --------------------");
                            pw.println(Library.ManualList.get(i).displayManual());
                            pw.println("---------------------------------------------------------");
                        }
                        pw.close();
                    } catch (IOException e) {
                        System.out.println("Error! Library unable to save.");
                    }
                    System.out.println("\n\n--------------------------------------------------------------------------");
                    System.out.println("\n                              Library saved!\n");
                    System.out.println("--------------------------------------------------------------------------\n");
                }
                    else if(saveYesNo){
                        System.out.println("\n");
                }   
                Menu.displayMenu();

            }
if(Menu.menuChoice==7&&Library.ManualList.isEmpty()){
System.out.println(Messages.addManualFirst);
Menu.displayMenu();
}
else if(Menu.menuChoice==7){
Library.displayManualList();
布尔值saveYesNo=Console.readYesNo(“\nManualKeeper®应用程序能够将当前库保存到工作区目录中的“.txt”\n文件中。\n\n是否保存当前库?(Y/n):\n”);
if(saveYesNo){
试一试{
File File=新文件(“Library.txt”);
delete();
createNewFile();
FileWriter fw=新的FileWriter(文件,true);
PrintWriter pw=新的PrintWriter(fw);
对于(int i=0;i
不要调用
file.delete()
,这将删除现有文件!我想你想要像这样的东西

File file = new File("Library.txt");
// file.delete();
// file.createNewFile();
for (int i = 1; file.exists(); i++) {
    file = new File(String.format("Library%d.txt", i));
}
您可以将其理解为声明并初始化
i
1
,而
文件
存在,请将其添加到
i
。重新初始化
文件
(在此期间)为
字符串
“Library#.txt”,其中
#
替换为
i


您可以阅读格式化程序语法。

这非常有效,但是是否有办法将信息附加到第一个library.txt,并且仅在应用程序关闭并再次启动后创建新的文本文件?保存
文件编写器
(和/或
打印编写器
)在应用程序关闭并再次启动之前,不要重新打开它。另外,这真的是一个不同的问题。很抱歉,我不确定如何表达我的问题,因为我认为每次启动时只会添加一次“1”:(我是编程新手。你能给我一个如何保存FileWriter的示例吗?@James一个可能的选择是放置一个名为
File getFilePath()的方法
菜单
中,在该方法末尾返回上面的
文件
。然后,您的代码可以是
文件file=Menu.getFilePath()
。如果没有看到所有代码,很难判断,而且您应该再次提出新问题(并尝试一些事情)。您的方法可能被称为
getFileWriter()
并返回文件编写器。欢迎来到开发世界。