如何在java中读取文件和写入两个不同的文件
我有一个由问题和答案组成的大文件。我想把问题放在一个文件里,把答案放在另一个文件里。确定问题是否结束/答案是否开始的唯一方法是一个“?”。答案以“”结尾。请帮忙 注意:答案从同一行开始问题结束..但是下一个问题从另一行开始如何在java中读取文件和写入两个不同的文件,java,file,Java,File,我有一个由问题和答案组成的大文件。我想把问题放在一个文件里,把答案放在另一个文件里。确定问题是否结束/答案是否开始的唯一方法是一个“?”。答案以“”结尾。请帮忙 注意:答案从同一行开始问题结束..但是下一个问题从另一行开始 以读取模式打开源文件,逐行读取 将每行数据按“?”进行拆分,通过“?”可以识别您的 问题结束了 现在你可以把问题写在一个文件里,回答在另一个文件里 重复此操作,直到到达文件末尾 更改相应的文件名并运行以下代码 import java.io.BufferedReader; i
- 以读取模式打开源文件,逐行读取
- 将每行数据按“?”进行拆分,通过“?”可以识别您的 问题结束了
- 现在你可以把问题写在一个文件里,回答在另一个文件里
- 重复此操作,直到到达文件末尾
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class Test {
public static void main(String[] args) {
File rFile = new File("QuestAndAnsFile.txt");
BufferedReader in = null;
BufferedWriter questFileWriter = null;
BufferedWriter ansFileWriter = null;
try
{
in = new BufferedReader(new FileReader(rFile));
questFileWriter = new BufferedWriter(new FileWriter("questions.txt"));
ansFileWriter = new BufferedWriter(new FileWriter("answers.txt"));
while (in.ready())
{
String s = in.readLine();
if(s.endsWith("?"))
{
questFileWriter.write(s+"\n");
}
else
{
ansFileWriter.write(s+"\n");
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try{
if(in != null){ in.close(); }
if(questFileWriter != null) { questFileWriter.close();}
if(ansFileWriter != null) { ansFileWriter.close();}
}
catch(Exception ex){}
}
}
}
更新:
while (in.ready())
{
String s = in.readLine();
String[] qs = s.split("\\?");
if(qs.length == 2)
{
//Assume that all line should contains question and ans
questFileWriter.write(qs[0]+"\n");
ansFileWriter.write(qs[1]+"\n");
}
}
是否要向我们显示实际文件和预期输出?首先解析文件,按
换行符拆分,这样您可以在字符串[]
中获得所有问题-答案对。接下来用?
拆分数组中的每个元素,这样您就可以得到单独的问题和答案。迭代所有字符串[]
,并将其写入相应的文件。答案可以不止一行?告诉我们您尝试了什么?发布一些代码。给出输入文件的示例。我认为您在这里遗漏了一点<代码>注意:答案从同一行开始问题结束..但是下一个问题从另一行开始。
是的,必须先将其按“?”分割,数组需要使用0作为问题,1作为答案