如何使用io包从文件夹中读取多个文本文件并将其附加到java中的新文件?

如何使用io包从文件夹中读取多个文本文件并将其附加到java中的新文件?,java,io,Java,Io,如何使用io包从文件夹中读取多个文本文件并将其附加到java中的新文件?在该文件夹中可能存在文本文件以外的文件,我已尝试解决该文件夹工作正常的问题。有没有更简单的方法来代替这个冗长的代码,如果有,请建议 包装实践 import java.io.*; public class ReadWriteFiles { public static void main(String args[]) throws IOException{ String inpath="C:/User

如何使用io包从文件夹中读取多个文本文件并将其附加到java中的新文件?在该文件夹中可能存在文本文件以外的文件,我已尝试解决该文件夹工作正常的问题。有没有更简单的方法来代替这个冗长的代码,如果有,请建议 包装实践

import java.io.*;

public class ReadWriteFiles {

    public static void main(String args[]) throws IOException{
        String inpath="C:/Users/sr01407/Desktop/test";
        String outpath="C:/Users/sr01407/Desktop/numbers.txt";
        File Folder=new File(inpath);
        File Files[];
        Files=Folder.listFiles();
        /*for(int j=0;j<Files.length;j++){
            System.out.println(Files[j]);
        }*/
        File OutFile = new File(outpath);
        // if File doesn't exists, then create it
        if (!OutFile.exists()) {
            OutFile.createNewFile();
        }
     for(int i=0;i<Files.length;i++){ 
         String FileName=Files[i].getName();

         if(FileName.endsWith("txt")){
             // System.out.println(FileName);
    BufferedReader streamIn = new BufferedReader(new FileReader(Files[i].toString()));

    FileWriter filewriter = new FileWriter(OutFile.getAbsoluteFile(), true);
    BufferedWriter streamOut= new BufferedWriter(filewriter);
    String count;
    while ((count = streamIn.readLine()) != null) {
        streamOut.write(count);
        streamOut.newLine();
        }
        streamOut.flush();
        streamOut.close();
    }}


}
}
import java.io.*;
公共类读写文件{
公共静态void main(字符串args[])引发IOException{
字符串inpath=“C:/Users/sr01407/Desktop/test”;
String outpath=“C:/Users/sr01407/Desktop/numbers.txt”;
文件夹=新文件(inpath);
文件[];
Files=Folder.listFiles();

/*为了(int j=0;j由于没有指定具体的Java版本,让我们假设它是Java 8。正如您提到的,您必须使用
Java.io
包,让我们假设它不允许使用
Java.nio.file.Files
org.apache.commons.io.FileUtils
之类的类中的奇特方法。在这种情况下,我会提出一种更简短的方法去做吧

public static void main(final String[] args) throws IOException {
    final File directory = new File("C:/Users/sr01407/Desktop/test");
    final File[] files = directory.listFiles((dir, name) -> name.endsWith(".txt"));
    if (files == null) {
        throw new IOException("the file " + directory + " is not a directory");
    }
    try (final BufferedWriter output = new BufferedWriter(new FileWriter("C:/Users/sr01407/Desktop/numbers.txt", true))) {
        for (final File file : files) {
            try (final BufferedReader reader = new BufferedReader(new FileReader(file))) {
                String line;
                while ((line = reader.readLine()) != null) {
                    output.write(line);
                    output.newLine();
                }
            }
        }
    }
}

与您建议的主要区别在于
文件#listFiles(FilenameFilter)的用法
列出并筛选文件和try-with-resources语句。

我对这个问题投了否决票,因为你在这里发布了代码,但没有说明它有什么问题。我们希望看到你希望代码做什么,为什么你希望它这样做,它实际上在做什么(带有完整的错误信息和堆栈跟踪),以及为什么它是错误的。请您的问题包括这些信息,然后我会考虑撤回我的下注。