我在输入文件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编程中的逻辑吗?
谢谢,纳伦
发布于 2012-12-18 01:35:39
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-18 01:31:48
下面是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);
}
}
发布于 2012-12-18 01:53:42
代码完成。
/*
* 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
https://stackoverflow.com/questions/13918933
复制相似问题