文件按照規則合併

/*編寫一個程序,將a.txt文件中的單詞與b.txt文件中的單詞交替合併到c.txt文件中,
 * a.txt文件中的單詞用回車符分隔,b.txt文件中用回車或空格進行分隔*/
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class test1{
    public static void main(String[] args) throws Exception{
        try {
            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");
            }           
            while((bWord = b.nextWord()) != null){
                c.write(bWord + "\n");
            }    
            c.close();
        } catch (Exception e) {
            e.printStackTrace();
        }        
    }
}
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);
    }   
    public String nextWord(){
        if(pos == words.length)
            return null;
        return words[pos++];
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章