Java批量生成配置文件
来源:互联网 发布:短信锦囊软件 编辑:程序博客网 时间:2024/06/07 14:36
package fileOperator;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.RandomAccessFile;import java.io.Reader;import java.nio.file.Files;import java.util.ArrayList;import java.util.List;public class FileUtils { public String doReplace(String input, String replacement) { return input.replaceAll(" ", replacement); } /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 in = new FileInputStream(file); int tempbyte; while ((tempbyte = in.read()) != -1) { System.out.write(tempbyte); } in.close(); } catch (IOException e) { e.printStackTrace(); return; } try { System.out.println("以字节为单位读取文件内容,一次读多个字节:"); // 一次读多个字节 byte[] tempbytes = new byte[100]; int byteread = 0; in = new FileInputStream(fileName); showAvailableBytes(in); // 读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1) { System.out.write(tempbytes, 0, byteread); } } catch (Exception e1) { e1.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e1) { } } } } /** * 以字符为单位读取文件,常用于读文本,数字等类型的文件 */ public static String readFileByChars(String fileName) { String content = ""; StringBuilder sb = new StringBuilder(256); File file = new File(fileName); Reader reader = null; try { System.out.println("以字符为单位读取文件内容,一次读多个字节:"); // 一次读多个字符 char[] tempchars = new char[128]; int charread = 0; reader = new InputStreamReader(new FileInputStream(fileName)); // 读入多个字符到字符数组中,charread为一次读取字符数 while ((charread = reader.read(tempchars)) != -1) { // 同样屏蔽掉\r不显示 if ((charread == tempchars.length)) { sb.append(tempchars); // System.out.print(tempchars); } else { for (int i = 0; i < charread; i++) { // if (tempchars[i] == '\r') { // continue; // } else { sb.append(tempchars[i]); // System.out.print(tempchars[i]); // } } } } content = sb.toString(); } catch (Exception e1) { e1.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } return content; } /** * 以行为单位读取文件,常用于读面向行的格式化文件 */ public static void readFileByLines(String fileName) { File file = new File(fileName); BufferedReader reader = null; try { System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new FileReader(file)); String tempString = null; int line = 1; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { // 显示行号 System.out.println("line " + line + ": " + tempString); line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } /** * 随机读取文件内容 */ public static void readFileByRandomAccess(String fileName) { RandomAccessFile randomFile = null; try { System.out.println("随机读取一段文件内容:"); // 打开一个随机访问文件流,按只读方式 randomFile = new RandomAccessFile(fileName, "r"); // 文件长度,字节数 long fileLength = randomFile.length(); // 读文件的起始位置 int beginIndex = (fileLength > 4) ? 4 : 0; // 将读文件的开始位置移到beginIndex位置。 randomFile.seek(beginIndex); byte[] bytes = new byte[10]; int byteread = 0; // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 // 将一次读取的字节数赋给byteread while ((byteread = randomFile.read(bytes)) != -1) { System.out.write(bytes, 0, byteread); } } catch (IOException e) { e.printStackTrace(); } finally { if (randomFile != null) { try { randomFile.close(); } catch (IOException e1) { } } } } /** * 显示输入流中还剩的字节数 */ private static void showAvailableBytes(InputStream in) { try { System.out.println("当前字节输入流中的字节数为:" + in.available()); } catch (IOException e) { e.printStackTrace(); } } /** * A方法追加文件:使用RandomAccessFile */ public static void appendMethodA(String fileName, String content) { try { // 打开一个随机访问文件流,按读写方式 RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); // 文件长度,字节数 long fileLength = randomFile.length(); // 将写文件指针移到文件尾。 randomFile.seek(fileLength); randomFile.writeBytes(content); randomFile.close(); } catch (IOException e) { e.printStackTrace(); } } /** * B方法追加文件:使用FileWriter */ public static void appendMethodB(String fileName, String content) { try { // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWriter(fileName, true); writer.write(content); writer.flush(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws IOException { generalFile();// updateFile(); } private static void generalFile() { String path = "E:/temp/"; String fileName = "CD0030001"; String suffix = ".yaml"; String fullPath = path + fileName + suffix; String contentTemplate = readFileByChars(fullPath); String dtermPath = "E:/temp/"; String prefix = "CD0030"; List<Integer> ignoreList = new ArrayList<Integer>();// ignoreList.add(6); // ignoreList.add(5); // ignoreList.add(9); // ignoreList.add(42); // ignoreList.add(43); // ignoreList.add(47); // ignoreList.add(99); // ignoreList.add(101); // ignoreList.add(103); // ignoreList.add(104); // ignoreList.add(105); // ignoreList.add(120); // ignoreList.add(121); // ignoreList.add(122); // ignoreList.add(123); // ignoreList.add(124); // ignoreList.add(125); // ignoreList.add(126); for (int i = 1; i <= 46; i++) { if (ignoreList.contains(i)) { continue; } String index = String.format("%03d", i); String newFileName = prefix + index; String newFilePath = dtermPath + newFileName + suffix; // String content = // contentTemplate.replaceAll("MobileBasicStore.basicInfos[0]", // "MobileBasicStore.basicInfos"); String content = contentTemplate.replaceAll(fileName, newFileName); try { File file = new File(newFilePath); if (file.exists()) { file.delete(); } file.createNewFile(); appendMethodB(newFilePath, content); System.out.println(newFileName + "--------------"); } catch (Exception ex) { System.out.println(newFileName); ex.printStackTrace(); } } } private static void updateFile() { String suffix = ".yaml"; String dtermPath = "E:/temp/"; String prefix = "TB0031"; List<Integer> ignoreList = new ArrayList<Integer>();// ignoreList.add(4);// ignoreList.add(5);// ignoreList.add(9);// ignoreList.add(42);// ignoreList.add(43);// ignoreList.add(47);// ignoreList.add(101);// ignoreList.add(103);// ignoreList.add(104);// ignoreList.add(105);// ignoreList.add(120);// ignoreList.add(121);// ignoreList.add(122);// ignoreList.add(123);// ignoreList.add(124);// ignoreList.add(125);// ignoreList.add(126); String newPrefix = "TB0041"; for (int i = 1; i <= 63; i++) {// if (ignoreList.contains(i)) {// continue;// } String index = String.format("%03d", i); String newFileName = newPrefix + index; String oldFileName = prefix+index;// String oldFilePath = dtermPath + oldFileName + suffix; String newFilePath = dtermPath + newFileName + suffix; // String content = // contentTemplate.replaceAll("MobileBasicStore.basicInfos[0]", // "MobileBasicStore.basicInfos"); String content = ""; try { File file = new File(newFilePath); if (file.exists()) { String contentTemplate = readFileByChars(newFilePath); content = contentTemplate.replaceAll("TaoBaoInputIndexTB004", "TaobaoInputIndexTB004").replaceAll("TB0031", "TB0041"); file.delete(); } File newFile = new File(newFileName); if(newFile.exists()){ newFile.delete(); } newFile.createNewFile(); appendMethodB(newFilePath, content); System.out.println(newFileName + "--------------"); } catch (Exception ex) { System.out.println(newFileName); ex.printStackTrace(); } } }}
0 0
- Java批量生成配置文件
- [Java]批量生成二维码
- Java生成配置文件Properties
- Java 批量随机生成身份证号码
- JAVA 批量生成IMEI 源代码
- java批量生成sqoop任务
- 一维码批量生成Java实现
- protoc 批量生成java代码
- Java随机生成批量Ip
- java实现批量生成文件夹和批量修改文件名
- Java批量下载生成zip文件
- Java批量生成Mac地址到文件
- Java--批量短连接生成工具
- java批量生成excel代码分享
- Java 批量随机生成身份证号码(未测试)
- java生成单个和批量二维码
- Java批量生成文件并写入内容
- Java根据词频生成批量数据
- 超全!iOS 面试题汇总
- linux系统安装(一)-网络设置
- Crontab学习笔记——Linux计划任务
- 017.Bit Operator 位运算
- Tomcat 找不到catalina.jar
- Java批量生成配置文件
- 7、结构体
- JAVA悲观锁和乐观锁
- 2387 poj Til the Cows Come Home【dijkstra,经典&&基础】
- 016.Assign Operator 赋值运算
- MeiTuanLocateCity仿美团城市列表选择界面
- awk 变量
- 015.Math Operator 复杂数学运算
- Android微信分享