首页 > 代码库 > Ip合并

Ip合并

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.List;public class Fileinfo extends Object {	private FileWriter writer;	private BufferedWriter bw;	private FileReader reader;	private BufferedReader br;	private FileReadCallback callbackfun;	public Fileinfo() {		super();	}	public Fileinfo(FileReadCallback callbackfun) {		super();		this.callbackfun = callbackfun;	}	public void setMyCallback(FileReadCallback callbackfun) {		this.callbackfun = callbackfun;	}	public boolean deleteFile(String sPath) {		boolean flag = false;		File file = new File(sPath);		// 路径为文件且不为空则进行删除		if (file.isFile() && file.exists()) {			file.delete();			flag = true;		}		return flag;	}	public boolean IsFileExist(String sPath) {		boolean flag = false;		File file = new File(sPath);		// 路径为文件且不为空则进行删除		if (file.isFile() && file.exists()) {			flag = true;		}		return flag;	}	public boolean CheckAndCreateFile(String filepath) throws IOException {		boolean flag;		File file = new File(filepath);		if (!file.isFile()) {			file.createNewFile();		}		return IsFileExist(filepath);	}	public void Writeindex(String filepath, String value) {		try {			if (writer == null) {				CheckAndCreateFile(filepath);				writer = new FileWriter(filepath, false);			}			if (bw == null)				bw = new BufferedWriter(writer);			writer = new FileWriter(filepath, false);			bw = new BufferedWriter(writer);			bw.write(value);			bw.flush();			bw.close();			// System.gc();		} catch (IOException e) {			e.printStackTrace();		}	}	public int Readlogindex(String filepath) {		int result = 0;		if (!IsFileExist(filepath)) {			return result;		}		try {			if (reader == null)				reader = new FileReader(filepath);			if (br == null)				br = new BufferedReader(reader);			try {				String str = null;				if ((str = br.readLine()) != null) {					result = Integer.parseInt(str);				}			} finally {				// reader.close();				// br.close();			}		} catch (IOException e) {			e.printStackTrace();		}		return result;	}	public void Write(String filepath, boolean append, List<String> datalist) {		try {			if (writer == null) {				CheckAndCreateFile(filepath);				writer = new FileWriter(filepath, append);			}			if (bw == null)				bw = new BufferedWriter(writer);			for (String index : datalist) {				bw.write(index);				bw.newLine();			}			bw.flush();		} catch (IOException e) {			e.printStackTrace();		}	}	public void Write(String filepath, boolean append, String value) {		try {			if (writer == null) {				CheckAndCreateFile(filepath);				writer = new FileWriter(filepath, true);			}			if (bw == null)				bw = new BufferedWriter(writer);			bw.write(value);			bw.newLine();			bw.flush();		} catch (IOException e) {			e.printStackTrace();		}	}	public void Read(String filepath) {		try {			FileReader reader = new FileReader(filepath);			BufferedReader br = new BufferedReader(reader);			String str = null;			while ((str = br.readLine()) != null) {				if (callbackfun != null) {					callbackfun.read(str);				}			}		} catch (IOException e) {			e.printStackTrace();		}	}	protected void finalize() throws Throwable {		super.finalize();		System.out.println("finalize");		if (writer != null)			writer.close();		if (bw != null)			bw.close();		if (reader != null)			reader.close();		if (br != null)			br.close();	}}
import java.util.ArrayList;import java.util.List;import com.chexun.project.unit.*;public class IpMerge implements FileReadCallback {	 class  Ipdata {		long start;		long end;		String area;				public long getStart() {			return start;		}		public void setStart(long start) {			this.start = start;		}		public long getEnd() {			return end;		}		public void setEnd(long end) {			this.end = end;		}		public String getArea() {			return area;		}		public void setArea(String area) {			this.area = area;		}		public Ipdata(String str) {			super();			parse(str);		}		@Override		public String toString() {			return start + ", " + end + ", " + area;		}				private void parse(String str){			String[] tmp = str.split(",");			if (3 == tmp.length){				start = Long.parseLong(tmp[0]);				end = Long.parseLong(tmp[1]);				area = tmp[2];			}		}	}		private final List<String> iplist = new ArrayList<String>();	private Ipdata lastipdata; 	long sum;		public void read(String str) {		sum++;		Ipdata ipdata = http://www.mamicode.com/new Ipdata(str);"user.dir");			String path = dir + "/resources/iptables.txt";			String outpathpath = dir + "/resources/iptablesnew.txt";			String path1 = "src/main/java/com.chexun.project.IpMerge/resources/iptables.txt";			Fileinfo fileinfo = new Fileinfo(this);			fileinfo.Read(path);			fileinfo.Write(outpathpath, false, iplist);				fileinfo =null;			System.gc();	}	public static void main(String[] args) {		IpMerge ipmerge = new IpMerge();		ipmerge.run();	}}

  

  

public interface FileReadCallback {      void read(String Str);      }  

  

Ip合并