Java从文本文件中获取行,创建新文本文件并插入

Java从文本文件中获取行,创建新文本文件并插入,java,Java,在我的代码中,我有这个GUI动画,我想通过自动创建一个新的文本文件,使其创建的动画功能更加通用 String getGUI = "res/worldSaves/GUI_Frames_List.txt"; String writeGUI = "res/worldSaves/GUI_Cancel_Object.txt"; private void getGUISymbol(String getGUIFrame) { try { ProcessCoords ge

在我的代码中,我有这个GUI动画,我想通过自动创建一个新的文本文件,使其创建的动画功能更加通用

String getGUI = "res/worldSaves/GUI_Frames_List.txt";
String writeGUI = "res/worldSaves/GUI_Cancel_Object.txt";

private void getGUISymbol(String getGUIFrame)
{
    try
    {   
        ProcessCoords get = new ProcessCoords(getGUI);
        String[] getaryLines = get.OpenFile();

        ProcessCoords data = new ProcessCoords(writeGUI);

        int i;
        for (i = 0; i < getaryLines.length; i++)
        {               
             if(getaryLines[i].startsWith(getGUIFrame))
             { 
                System.out.println("current = " + getaryLines[i]); 
                data.writeToFile("GUI"+getaryLines[i]); // this needs to generate a new text file - how?
             }
        }
    }
    catch(IOException e) {
        System.out.println(e.getMessage());
        }
}

此代码应生成该文件,除非出现某种异常。例如,您没有在当前工作目录中写入/创建文件的权限。 作为旁注,无论何时进行IO,最好使用try with resources构造来确保始终调用close,例如

try (FileWriter write = new FileWriter(path, append_to_file);PrintWriter print_line = new PrintWriter(write)) {
    print_line.printf("%s" + "%n", textLine);
}

要创建临时文件传递,例如file.createTempFilepath,txt,而不仅仅是FileWriter构造函数的路径

你的ProcessCoords.writeToFile方法是什么样子的?我已经更新了答案,它现在就在那里。。当我删除GUI\u Cancel\u Object.txt文件时,它仍然有效,我希望在我的worldSaves文件夹中看到文本文件,但它没有出现。。这就是我困惑的原因…是的。。仍然不能正常工作,文件应该会出现,对吗?哦,那很有趣。。ProcessCoords中的writeToFile方法正是这样,我现在删除了GUI\u Cancel\u Object.txt文件,它工作正常。。我只是希望在worldSaves文件夹中看到创建后的文本文件,但它不会出现在任何地方。。应该是这样吗?不,等等。。我不明白,它仍然不能正常工作。。谢谢你的回答,我想我的代码中一定有一个bug。好了,现在可以了。。文件正在创建中,只是eclipse没有显示它。。一切都很好-非常感谢!是的,我认为您需要在工作区上点击F5以刷新Eclipse中的文件系统更改,刷新没有改变任何东西-不知道为什么,但它可以工作,这是重要的:
try (FileWriter write = new FileWriter(path, append_to_file);PrintWriter print_line = new PrintWriter(write)) {
    print_line.printf("%s" + "%n", textLine);
}