如何读取文件并在java中写入2个不同的文件

时间:2014-07-18 05:57:45

标签: java file

我有一个包含问题和答案的大文件。我想将问题放在一个文件中并回答其他文件。确定问题是否结束/回答的唯一方法是“#”;'。答案以“'”结尾。请帮助...

注意:答案从同一行问题结束开始......然而,下一个问题从另一行开始。

2 个答案:

答案 0 :(得分:0)

  • 以读取模式打开源文件逐个读取每一行。

  • 按"?"拆分每行数据。通过它你可以确定你的 问题已经结束。

  • 现在您可以在一个文件中写问题,在其他文件中回答。

  • 重复此操作,直至到达文件末尾

答案 1 :(得分:0)

更改相应的文件名并运行以下代码。

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");
   }
}