Java 如何读取一个文件并生成多个文本输出文件
我有一个文本文件,如下所示。我的问题是我想把我的txt文件读到每一段,并在java上为每一段生成单独的新文本文件Java 如何读取一个文件并生成多个文本输出文件,java,io,Java,Io,我有一个文本文件,如下所示。我的问题是我想把我的txt文件读到每一段,并在java上为每一段生成单独的新文本文件 每次要使用其他编写器打印时都调用此函数 public class MySaver{ private PrintWriter innerWriter; public MySaver(Writer writer) { this.innerWriter = new PrintWriter(writer); } public voi
每次要使用其他编写器打印时都调用此函数
public class MySaver{
private PrintWriter innerWriter;
public MySaver(Writer writer)
{
this.innerWriter = new PrintWriter(writer);
}
public void save(String c) throws IOException {
innerWriter.write(c);
}
}
或者首先使用StringBuilder创建字符串并附加您想要的内容,然后打印其内容 逻辑是在
循环中创建一个新的FileWriter
对象,每次看到'>'
符号时。
我使用简单的int文件计数器命名多个输出文件,即
out0.txt、out1.txt、out2.txt等等
请参见以下工作代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriting{
public static void main (String[] args){
BufferedReader br=null;
BufferedWriter bw= null;
String outFileName = "D:\\New folder\\out";
try {
String s;
br = new BufferedReader(new FileReader("D:\\New folder\\casp10.txt"));
int fileCounter = 0;
while ((s=br.readLine())!= null) {
if(s.contains(">")){
if(bw != null){
bw.close();
}
FileWriter fw = new FileWriter(outFileName + (fileCounter++) + ".txt");
bw = new BufferedWriter(fw);
}
bw.write(s +"\n");
}
} catch(IOException e) {
e.printStackTrace();
} finally {
try {
if(br!=null) {
br.close();
bw.close();
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
}
有什么问题吗?当您到达边界时,创建一个指向不同文件的新写入器。您在写入下一行后写入>(在变量s中),因此您将根据输入对输出进行重新排序。因此,我应该对其进行哪些更改?如果我得到了确切的输出。我真的很感谢你的努力
public class MySaver{
private PrintWriter innerWriter;
public MySaver(Writer writer)
{
this.innerWriter = new PrintWriter(writer);
}
public void save(String c) throws IOException {
innerWriter.write(c);
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriting{
public static void main (String[] args){
BufferedReader br=null;
BufferedWriter bw= null;
String outFileName = "D:\\New folder\\out";
try {
String s;
br = new BufferedReader(new FileReader("D:\\New folder\\casp10.txt"));
int fileCounter = 0;
while ((s=br.readLine())!= null) {
if(s.contains(">")){
if(bw != null){
bw.close();
}
FileWriter fw = new FileWriter(outFileName + (fileCounter++) + ".txt");
bw = new BufferedWriter(fw);
}
bw.write(s +"\n");
}
} catch(IOException e) {
e.printStackTrace();
} finally {
try {
if(br!=null) {
br.close();
bw.close();
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
}