1

私のコードでは、最初のステップでマッチャーの結果をファイル test1.txt に書き込みます。2 番目のステップでは、test1.txt の内容を読み取り、品詞タグ付けを使用します。私の問題は、test1.txt への書き込みと読み取りが同時に機能し、output.txt に二重のエントリが発生することです。test1.txt からの読み取りが、書き込みが終了したときにのみ開始され、同時にではなく開始されるようにするには、どうすればよいですか?

     while (matcher.find()) { 
                                             //create a new file and write to it during the search
         try{
             pWriter = new PrintWriter(new BufferedWriter(new FileWriter("E:/test/test1.txt", true)));//append any given input 
             pWriter.println(matcher.group());  //write the result of matcher to the new file
         } catch (IOException ioe) { 
             ioe.printStackTrace(); 
         } finally { 
             if (pWriter != null){ 
                 pWriter.flush(); 

                 pWriter.close();

             } 
         }


         System.out.println(matcher.group()); //Print the result of matcher to console


         MaxentTagger tagger =  new MaxentTagger("models/english-bidirectional-distsim.tagger");
         FileInputStream fstream = new FileInputStream("E:/test/test1.txt");
         DataInputStream in = new DataInputStream(fstream);
         BufferedReader br = new BufferedReader(new InputStreamReader(in));


         //pick up sentences line by line from the file test1.txt and store it in the string sample
         while((sample = br.readLine())!=null)
         {
         //tag the string
         String tagged = tagger.tagString(sample);
         FileWriter q = new FileWriter("E:/test/output.txt",true);
         BufferedWriter out =new BufferedWriter(q);
         //write it to the file output.txt
         out.write(tagged);
         out.newLine();
         out.close();
         }

        }
4

1 に答える 1