标签:工具类 targe top error span count 习惯 catch getc
public class TestCopy { final static String sourceFile = "C:/Users/Silence/Desktop/address-all.txt"; final static String targetFile = "C:/Users/Silence/Desktop/target.txt"; @Test public void testCopy() { try { MyUtil.fileCopy(sourceFile, targetFile); } catch (IOException e) { e.printStackTrace(); } } @Test public void testCountWord() { int count = MyUtil.countWordInFile(sourceFile, "市辖区"); System.out.println(count); } } public class MyUtil { // 工具类中的方法都是静态方式访问的因此将构造器私有不允许创建对象(绝对好习惯) private MyUtil() { throw new AssertionError(); } /** * 文件拷贝一 * * @param source * @param target * @throws IOException */ public static void fileCopy(String source, String target) throws IOException { try (InputStream in = new FileInputStream(source)) { try (OutputStream out = new FileOutputStream(target)) { byte[] buffer = new byte[4096]; int bytesToRead; while ((bytesToRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesToRead); } } } } /** * 文件拷贝二 * * @param source * @param target * @throws IOException */ public static void fileCopyNIO(String source, String target) throws IOException { try (FileInputStream in = new FileInputStream(source)) { try (FileOutputStream out = new FileOutputStream(target)) { FileChannel inChannel = in.getChannel(); FileChannel outChannel = out.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(4096); while (inChannel.read(buffer) != -1) { buffer.flip(); outChannel.write(buffer); buffer.clear(); } } } } /** * 输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数 * * @param filename * @param word * @return */ public static int countWordInFile(String filename, String word) { int counter = 0; try (FileReader fr = new FileReader(filename)) { try (BufferedReader br = new BufferedReader(fr)) { String line = null; while ((line = br.readLine()) != null) { int index = -1; while (line.length() >= word.length() && (index = line.indexOf(word)) >= 0) { counter++; line = line.substring(index + word.length()); } } } } catch (Exception e) { e.printStackTrace(); } return counter; } }
标签:工具类 targe top error span count 习惯 catch getc
原文地址:https://www.cnblogs.com/ffeiyang/p/9397805.html