java 利用输入输出流处理txt文件,并生成新txt文件

直接上代码:

import java.io.*;
import java.util.Calendar;

public class TestTxt {
	@org.junit.Test
	public void test2(){
		long starttime=System.currentTimeMillis();
		try {
			File file1=new File("d:\\test.txt");//读取文件
			FileReader fr =new FileReader(file1);
			File file2=new File("d:\\newFile.txt");//新生文件
			if(file2.exists()){ //如果新生文件存在,新生文件重命名
				String pathname="D:\\newFile"+getTimeByCalendar()+".txt";
				file2=new File(pathname);
			}
			FileWriter fw =new FileWriter(file2);

			BufferedReader br=new BufferedReader(fr);
			BufferedWriter bw=new BufferedWriter(fw);

			String temp=null;
			long time222=System.currentTimeMillis();
			System.out.println("中耗时:"+(time222-starttime)+"ms");
			while((temp=br.readLine())!=null){ //读取行数据
				String[] str=temp.split("\\s+");
				long ip1=ipToLong(str[0]);
				long ip2=ipToLong(str[1]);
				StringBuilder newStr=new StringBuilder();
				newStr.append(ip1);
				newStr.append(" ");
				newStr.append(ip2);
				newStr.append(" ");
				for (int i=0;i<str.length;i++){
					if(i!=5){
						newStr.append(str[i]);
						newStr.append(" ");
					}
				}
					bw.write(newStr.toString()); //向新生的文件写入行数据
					bw.newLine();//换行
			}
			long time333=System.currentTimeMillis();
			System.out.println("循环耗时:"+(time333-time222)+"ms");
			bw.flush();
			br.close();
			bw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		long endtime=System.currentTimeMillis();
		System.out.println("总耗时:"+(endtime-starttime)+"ms");
	}

	public String getTimeByCalendar(){
		Calendar cal = Calendar.getInstance();
		int year = cal.get(Calendar.YEAR);//获取年份
		int month=cal.get(Calendar.MONTH);//获取月份
		int day=cal.get(Calendar.DATE);//获取日
		int hour=cal.get(Calendar.HOUR);//小时
		int minute=cal.get(Calendar.MINUTE);//分
		int second=cal.get(Calendar.SECOND);//秒
		int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
		System.out.println("现在的时间是:公元"+year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒       星期"+WeekOfYear);
		String time=year+""+month+""+day+""+hour+""+minute+""+second;
		return time;
	}
	/**
	 * 将ip转成数字
	 *
	 */
	public static long ipToLong(String strIP) {
		long[] ip = new long[4];
		String[] ipSec = strIP.split("\\.");
		for (int k = 0; k < 4; k++) {
			ip[k] = Long.valueOf(ipSec[k]);
		}
		return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
	}

}

文件处理前:

处理后:



猜你喜欢

转载自blog.csdn.net/tanhoqi451/article/details/76088195