直接上代码:
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];
}
}
文件处理前:
处理后: