版权声明:本文为博主原创文章,未经博主允许不得转载。 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++];
}
}
前天的凡科比试也考一道文件操作题,算法题写多了,有时常规的文件操作也得会写。