您的位置:首页 > 编程语言 > Java开发

编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件中

2013-09-23 14:54 501 查看
/**
* 编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件中。
a.txt 文件中的单词用回车符分隔,b.txt 文件中用回车或空格进行分隔
*/

package test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test{
public static void main(String [] args) throws Exception{
FileWriter ra = new FileWriter("a.txt");//字符流
ra.write("adsf\nasgdg\ndasg\nqewr\ntrt\n");
ra.close();

FileWriter rb = new FileWriter("b.txt");
rb.write("adsf asgdg dasg\nqewr trt\n");
rb.close();

FileManager a = new FileManager("a.txt", new char[]{'\n'});
FileManager b = new FileManager("b.txt", new char[]{'\n',' '});
FileWriter c = new FileWriter("c.txt");
String aWord = null;
String bWord = null;
//交替写入
while((aWord=a.nextWord())!=null){
c.write(aWord+"\n");
bWord = b.nextWord();
if(bWord!=null){
c.write(bWord+"\n");
}
}
//如果b还有
while((bWord=b.nextWord())!=null){
c.write(bWord+"\n");
}
c.close();

}

}

class FileManager{
String[] words = null;//
int pos = 0;//words的索引
/**
* 读入文件信息,根据分隔符,存入字符串数组words中
* @param filename
* @param seperators
* @throws Exception
*/
public FileManager(String filename, char[] seperators) throws Exception{
File f = new File(filename);
FileReader reader = new FileReader(filename);//文件字符流
char[] buf = new char[(int)f.length()];//f和文件字符流一样大
int len = reader.read(buf);//读取的长度---小文件,一次性读取
String results = new String(buf,0,len);
String regex = null;//正则表达式
if(seperators.length>1){
regex=""+seperators[0]+"|"+seperators[1];
}
else{
regex=""+seperators[0];
}
words=results.split(regex);
reader.close();
}
/**
* 返回当前pos位置的words[pos],然后后移pos,即pos++
* @return
*/
public String nextWord(){
if(pos==words.length){
return null;
}
return words[pos++];

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 字符流 regex
相关文章推荐