读取和修改文件夹中的每个文件 - Java [重复]
Posted
技术标签:
【中文标题】读取和修改文件夹中的每个文件 - Java [重复]【英文标题】:Read and modify each files in a folder - Java [duplicate] 【发布时间】:2014-10-20 09:11:44 【问题描述】:我有一个包含 1000 个文件的文件夹。每个文件包含不同行数的文本。我想要并试图实现的是读取“每个”文件并将所有行附加到 1 行中(也就是说,我希望每个文件都有一行文本)。
这是我尝试过的,但它只打印文件名而不影响对文件的任何更改...
String line = "";
try
file = new FileReader(filename);
BufferedReader reader = new BufferedReader (file);
while ((line = reader.readLine()) != null)
allLine.append(line);
//System.out.println(allLine);
catch (IOException e)
throw new RuntimeException("File not found");
return allLine.toString();
FileWriter op = null;
op = new FileWriter(fileName);
BufferedWriter wryt = new BufferedWriter(op);
wryt.write(s);
wryt.flush();
if(op != null)
op.close();
File[] lOfiles = folder.listFiles();
for (int i = 0; i< lOfiles.length; i++)
if(lOfiles[i].isFile())
System.out.println(lOfiles[i].getName());
ReadLines rd = new ReadLines();
String rw = rd.readtxtFile(lOfiles[i].toString());
rd.writetxtFile(lOfiles[i].getName(), rw);
【问题讨论】:
你遗漏了一些写TxtFile的代码。 好的,我了解您想要实现的目标,并且您提供了一些代码 - 但问题是什么? 您的问题是什么?你哪里出了问题? 【参考方案1】: try
File folder = new File("yourfolderpath");
File out = new File("outputfile.txt");
try(BufferedWriter bw = new BufferedWriter(new FileWriter(out)))
for(File f: folder.listFiles())
BufferedReader br = new BufferedReader(new FileReader(f));
for(String line = br.readLine(); line!=null; line=br.readLine())
bw.write(line);
catch (IOException e)
e.printStackTrace();
【讨论】:
问题是我上面提供的代码只读取文件的名称/路径,而不通过将每个文件中的所有文本附加到一行来修改每个文件。 @Andrew writeTxtFile 代码是以 FileWriter 开头的代码 对不起,我看到了我的错误。我发布的代码实际上为我完成了这项工作,但输出显示在根文件夹中。谢谢你的cmets。我很感激他们。以上是关于读取和修改文件夹中的每个文件 - Java [重复]的主要内容,如果未能解决你的问题,请参考以下文章