如何使用io包从文件夹中读取多个文本文件并将其附加到java中的新文件?
如何使用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
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语句。我对这个问题投了否决票,因为你在这里发布了代码,但没有说明它有什么问题。我们希望看到你希望代码做什么,为什么你希望它这样做,它实际上在做什么(带有完整的错误信息和堆栈跟踪),以及为什么它是错误的。请您的问题包括这些信息,然后我会考虑撤回我的下注。