如何使用FileWriter将输出写入txt文件

时间:2018-03-21 07:12:35

标签: java

这是我的java代码,用于查找目录中文件的位置,并将它们作为输出写入txt文件,但在编译后,内容不会写入txt文件。请给我一些解决方案。

public void listFilesAndFilesSubDirectories(String directoryName)
{
    File directory = new File(directoryName);
    List<String> list=new ArrayList<String> ();
    //get all the files from a directory
    if(directory.exists()){
        File[] fList = directory.listFiles();
        for (File file : fList){
            if (file.isFile()){
                if(file.getName().endsWith(".c")==true || file.getName().endsWith(".h")==true){
                    // System.out.println(file.getAbsolutePath());
                    list.add(file.getAbsolutePath());
                }
            } else if (file.isDirectory()){
                listFilesAndFilesSubDirectories(file.getAbsolutePath());
            }
            else break;
        }

        try{
            FileWriter fw=new FileWriter("C:/Users/Public/afreen/module.txt");
            BufferedWriter out = new BufferedWriter(fw);

            for(String str: list)
            {
                System.out.println(str);
                out.write(str);
            }
            out.flush();
            out.close();
        }
        catch(Exception  e)
        {
            System.out.println(e);
        }
        System.out.println("Success....");
    }
    else
    {
        System.out.println("The directory is not exist , please enter a valid path");
    }
}

上面的代码将输入作为目录的路径,并找到我想要的文件的位置。但是这些位置无法写入txt文件,我找不到实际的原因,请帮帮我找出它的解决方案。

1 个答案:

答案 0 :(得分:0)

每次调用方法(递归)时都会创建一个新列表并向其添加目录名,但该列表不是您要打印的列表,请尝试使用共享资源。
例如使用全局变量等。