2012-12-17 98 views
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编程中的逻辑帮助我解决这个问题。

谢谢, 那仁

+1

欢迎#1。你的问题很好。谷歌和尝试的东西,并张贴您的代码,如果有任何错误或逻辑错误等来解决这里。 – vels4j

回答

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()写入参数线作为遵循:

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

+0

如果我这样做,我不写所有的线,只有最后一条迭代线写 – Narayanan

0

这里是Reading and writing text files using 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);  
    } 
    } 
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

+0

如果一行包含001和002会怎么样? (删除ifs之间的其他内容) – Aubin