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

时间:2015-10-15 08:12:38

标签: 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 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());
        }
}

目前我有两个文本文件,一个包含所有GUI图标的列表,另一个只包含当前应显示的文件。

我的目标是让程序在适当的目录中自己创建文本文件(GUI_Cancel_Object.txt),并在每次调用方法时覆盖文本文件。

我尝试用PrintWriter来做,但它没有生成文本文件,也许我的实现错了 - 有什么建议吗?

注意:Process Coords就是使用FileReader等标准的Java类方法。

编辑:创建的文件(在本例中为GUI_Cancel_Object.txt)可以像临时文件一样 - 在程序关闭时被删除。

更新

    public void writeToFile(String textLine) throws IOException
    {
        FileWriter write = new FileWriter(path, append_to_file);
        PrintWriter print_line = new PrintWriter(write);

        print_line.printf("%s" + "%n", textLine);
        print_line.close();
    }

1 个答案:

答案 0 :(得分:0)

此代码应生成该文件,除非出现某种异常。例如。您无权在当前工作目录中编写/创建文件。 作为旁注,每当您进行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.createTempFile(path,“txt”),而不仅仅是FileWriter构造函数的路径