gpt4 book ai didi

java - 在目录java中分割多个文本文件

转载 作者:行者123 更新时间:2023-12-01 07:34:28 24 4
gpt4 key购买 nike

我试图沿着“客户声明结束”行拆分目录中的文本文件,并将结果文件存储到临时目录中。分割仅发生在第一个文件,而另一个文件被忽略,我的代码有什么问题。我期望 for 循环会吞没目录中的所有文件?这是我的代码。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
*
* @author Administrator
*/
public class SplitFiles {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

File f = new File("D:/statements/");
String[] filenames = f.list();
File[] texts = f.listFiles();
String lines = "";
for (int m = 0; m < filenames.length; m++) {
try {
int count = 0;
FileInputStream fs = new FileInputStream("D:/statements/" + filenames[m]);
BufferedReader br = new BufferedReader(new InputStreamReader(fs));

FileOutputStream fos = new FileOutputStream("D:/DFCU Statements/statement" + count + ".RPT");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));

while ((lines = br.readLine()) != null) {
String mine = lines.trim();

if (mine.startsWith("END OF CUSTOMER STATEMENT")) {
bw.close();
count++;
fos = new FileOutputStream("D:/DFCU Statements/statement" + count + ".RPT");
bw = new BufferedWriter(new OutputStreamWriter(fos));
continue;
}
if (mine.isEmpty()) {
continue;
} else {
bw.write(lines);
bw.newLine();
bw.flush();
}
}
fos.close();
fs.close();
br.close();
bw.close();
} catch (Exception ag) {
System.out.println(ag);
}
}
}
}

最佳答案

我认为你应该首先这样做(可能会有更多错误)

int count = 0;
for (int m = 0; m < filenames.length; m++) {
...

更新此外,删除您的 count++ 并将其放置在每个文件创建之后

FileOutputStream fos = new FileOutputStream("D:/DFCU Statements/statement" + count + ".RPT");
count++;

然后它将按预期工作

关于java - 在目录java中分割多个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com