java IO操作 按照规律合并两个txt文件

来源:互联网 发布:企业资产负债数据 编辑:程序博客网 时间:2024/05/27 20:27

题目 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单 词用回车符分隔,b.txt文件中用回车或空格进行分隔。


实现代码


package org.zhy.demo.algorithm;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;/** * 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单 词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 *  * @author Administrator *  */public class Files {public static final String FILE_A = "d:\\a.txt"; // A文件public static final String FILE_B = "d:\\b.txt"; // B文件public static final String FILE_C = "d:\\c.txt"; // C文件public static final String HH="#";  //B文件换行分割public static final String KG="|";  //B文件空格分割public static void main(String[] args) {read(KG);}public static void read(String type) {File fileA = new File(FILE_A);File fileB = new File(FILE_B);File fileC = new File(FILE_C);InputStream isA = null;InputStream isB = null;try {isA = new FileInputStream(fileA);isB = new FileInputStream(fileB);} catch (IOException e) {e.printStackTrace();}List<String> fileAStr = bufferRead(isA,HH); // 存储A文件每行的单词List<String> fileBStr = bufferRead(isB,type); // 存储B文件每行的单词try {if (fileC.isFile()) {fileC.createNewFile();}} catch (IOException e) {e.printStackTrace();}OutputStream os = null;try {os = new FileOutputStream(fileC);} catch (Exception e) {e.printStackTrace();}try {while (true) {if (fileAStr.size() > 0) {os.write(fileAStr.get(0).getBytes()); // 输出第一行os.write("\r\n".getBytes()); // 输出换行fileAStr.remove(0);  //删除掉已经读取的单词}if (fileBStr.size() > 0) {os.write(fileBStr.get(0).getBytes()); // 输出第一行os.write("\r\n".getBytes()); // 输出换行fileBStr.remove(0);}if (fileAStr.size() == 0 && fileBStr.size() == 0) {break;}}} catch (IOException e) {e.printStackTrace();} finally {try {os.close();} catch (IOException e) {e.printStackTrace();}}}public static List<String> bufferRead(InputStream is,String type) {List<String> tempList = new ArrayList<String>();BufferedReader br = new BufferedReader(new InputStreamReader(is));String link;try {link = br.readLine();if(type.equals(HH)){while (link != null) {tempList.add(link); // 把A文件读取的单词放到list中.link = br.readLine();}return tempList;}else{String str = "";while (link != null) {//tempList.add(link); // 把A文件读取的单词放到list中.str=str+link;  //添加到字符串中link = br.readLine();}String[] split = str.split(" ");for(String strtemp : split){tempList.add(strtemp);}return  tempList;}} catch (IOException e) {e.printStackTrace();} finally {try {br.close();} catch (IOException e) {e.printStackTrace();}}return null;}}


原创粉丝点击