1

我在输入文件 a.txt 中有一些内容为

Line 1 : "abcdefghijk001mnopqr hellohello"
Line 2 : "qwertyuiop002asdfgh welcometologic"
Line 3 : "iamworkingherefromnowhere002yes somethingsomething"
Line 4 : "thiswillbesolved001here ithink"

我必须阅读 a.txt 文件并将其写入两个单独的文件。即,具有 001 的行应写入 output1.txt,具有 002 的行应写入 output2.txt

有人可以用Java编程中的逻辑来帮助我吗?

谢谢,纳伦

4

3 回答 3

2
BufferedReader br = new BufferedReader( new FileReader( "a.txt" ));
String line;
while(( line = br.readLine()) != null ) {
    if( line.contains( "001" )) sendToFile001( line );
    if( line.contains( "002" )) sendToFile002( line );
}
br.close();

方法 sendToFile001() 和 sendToFile002() 将参数行写入如下:

ps001.println( line );

使用 PrintStream 类型的 ps001 和 ps002,之前打开(在构造函数中?)

于 2012-12-17T17:35:39.307 回答
0

这是使用 Java 读取和写入文本文件并检查条件的一个很好的示例,请执行以下操作

while ((line = reader.readLine()) != null) {
    //process each line in some way
    if(line.contains("001") {
     fileWriter1.write(line);  
    } else if (line.contains("002") ) {
     fileWriter2.write(line);    
    }
  } 
于 2012-12-17T17:31:47.970 回答
0

代码完成。

 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jfile;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URL;

/**
 *
 * @author andy
 */
public class JFile {

    /**
     * @param args the command line arguments
     */

    static File master = null,
                m1     = null, // file output with "001"
                m2     = null; // file output with "002"

    static FileWriter fw1,
                      fw2;

    static FileReader fr = null;
    static BufferedReader br = null;

    public static void main(String[] args) throws FileNotFoundException, IOException
    {

         String root = System.getProperty("user.dir") + "/src/files/";

         master = new File ( root + "master.txt" );
         m1     = new File ( root + "m1.txt");
         m2     = new File ( root + "m2.txt");

         fw1     = new FileWriter(m1, true);
         fw2     = new FileWriter(m2, true);


         fr = new FileReader (master);
         br = new BufferedReader(fr);

         String line;
         while((line = br.readLine())!=null)
         {
             if(line.contains("001")) 
             {               
                 fw1.write(line + "\n");

             } else if (line.contains("002"))
             {
                 fw2.write(line + "\n");

             }
         }

         fw1.close();
         fw2.close();
         br.close();
    }

}

Netbeans 项目http ://www.mediafire.com/?yjdtxj2gh785cyd

于 2012-12-17T17:53:42.280 回答