两个文件合并的编程题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiao__jia__jia/article/details/83182929

                                         两个文件合并的编程题

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

public class MainClass {
  public static void main(String[] args) throws Exception {
	FileManager aFileManager = new FileManager("a.txt", new char[] {'\n'});
	FileManager bFileManager = new FileManager("b.txt", new char[] {'\n',' '});
	FileWriter cFileWriter = new FileWriter("c.txt");
	String aWord = null;
	String bWord = null;
	while((aWord = aFileManager.nextWord()) != null) {
		cFileWriter.write(aWord+"\n");
		bWord = bFileManager.nextWord();
		if(bWord != null) {
			cFileWriter.write(bWord + "\n");
		}
	}
	while((bWord = bFileManager.nextWord()) != null) {
		cFileWriter.write(bWord+"\n");
	}
	cFileWriter.close();

	
}
}

class FileManager {
	String[] words = null;
	int pos = 0;
	public FileManager(String filename, char[] seperators) throws Exception {
		File f = new File(filename);
		FileReader reader = new FileReader(f);
		char[] buf = new char[(int)f.length()];
		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();
	}
	
	public String nextWord() {
		if(pos == words.length) {
			return null;
		}
		return words[pos++];
	}
}


前天的凡科比试也考一道文件操作题,算法题写多了,有时常规的文件操作也得会写。


 

猜你喜欢

转载自blog.csdn.net/xiao__jia__jia/article/details/83182929