当前位置:网站首页>Text replacement demo
Text replacement demo
2022-07-03 22:29:00 【User 2700206】
package com.na.ip; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Scanner; public class Main { public static void main(String[] args) throws UnknownHostException, IOException { String local = "localhost"; String server = "baseserver"; String ip = getLocalIp(); String baseserver = ""; String folder = getJarDir(); System.out.println(" The current path is :" + folder); System.out.println(" This machine ip by :" + ip); System.out.println(" Whether it is right (Y/N)?"); @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); String str = sc.nextLine(); if ("Y".equalsIgnoreCase(str)) { } else { System.out.println(" Enter this machine IP:"); sc = new Scanner(System.in); str = sc.nextLine(); ip = str; } System.out.println(" Input basic service machine IP( Multiple needs , separate ):"); sc = new Scanner(System.in); str = sc.nextLine(); baseserver = str; if (args != null && args.length > 0 && args[0].equalsIgnoreCase("vip")) { if (args.length > 2 && args[1].equals("vvip")) { System.out.println(" Enter source folder path :"); sc = new Scanner(System.in); str = sc.nextLine(); folder = str; } System.out.println(" Enter this machine IP String to replace :"); sc = new Scanner(System.in); str = sc.nextLine(); local = str; System.out.println(" Input basic service machine IP String to replace :"); sc = new Scanner(System.in); str = sc.nextLine(); server = str; } System.out.println(" This machine ip by :" + ip + ", Will replace the string :" + local + "; Basic services ip by :" + baseserver + ", Will replace the string :" + server); System.out.println(" Enter the destination folder path :"); sc = new Scanner(System.in); str = sc.nextLine(); String dest = str; File dir = new File(folder); for (File file : dir.listFiles()) { if (!file.isDirectory()) { continue; } String folderName = file.getName(); File serverFolder = new File(dest + File.separator + folderName); if (!serverFolder.exists()) { serverFolder.mkdirs(); } for (File configFile : file.listFiles()) { if (!configFile.isDirectory()) { continue; } String configFolderName = configFile.getName(); File configFolder = new File(serverFolder.getAbsoluteFile() + File.separator + configFolderName); if (!configFolder.exists()) { configFolder.mkdirs(); } for (File config : configFile.listFiles()) { if (config.isDirectory()) { continue; } String name = config.getName(); File configTxt = new File(configFolder.getAbsoluteFile() + File.separator + name); System.out.println(" Start replacing " + config.getAbsolutePath() + " The contents of the document :"); if(name.contains("ignite") && baseserver.split(",|,").length > 1 && server.split(",|,").length == baseserver.split(",|,").length) { replacTextContent(config.getAbsolutePath(),baseserver.split(",|,"), server.split(",|,"), configTxt.getAbsolutePath()); replacTextContent(configTxt.getAbsolutePath(),new String[] { local }, new String[] { ip }, configTxt.getAbsolutePath()); }else { replacTextContent(config.getAbsolutePath(), new String[] { local, server }, new String[] { ip, baseserver }, configTxt.getAbsolutePath()); } } } } } // obtain jar Catalog public static String getJarDir() { File file = getFile(); if (file == null) return null; return getFile().getParent(); } public static File getFile() { String path = Main.class.getProtectionDomain().getCodeSource().getLocation().getFile(); try { path = java.net.URLDecoder.decode(path, "UTF-8");// Convert Chinese and spaces } catch (java.io.UnsupportedEncodingException e) { return null; } return new File(path); } /** * Replace the string in the text file * * @param path * @throws IOException */ public static void replacTextContent(String path, String[] srcStr, String[] replaceStr, String dest){ try { // read File file = new File(path); //FileReader in = new FileReader(file); BufferedReader bufIn = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); // Memory flow , As a temporary stream //CharArrayWriter tempStream = new CharArrayWriter(); OutputStreamWriter tempStream = new OutputStreamWriter(new FileOutputStream(new File(dest)),"UTF-8"); // Replace String line = null; while ((line = bufIn.readLine()) != null) { // Replace... In each line , Qualified string for (int i = 0; i < srcStr.length; i++) { line = line.replaceAll(srcStr[i], replaceStr[i]); } // Write the line to memory tempStream.write(line); // Add line breaks tempStream.append(System.getProperty("line.separator")); } // close Input stream bufIn.close(); // Stream in memory write in file //FileWriter out = new FileWriter(new File(dest)); //tempStream.writeTo(out); //out.close(); tempStream.close(); System.out.println(" End of replacement , Generate file path :" + dest); } catch (Throwable e) { System.err.println(" Replace "+path+" File failed !"); } } public static String getLocalIp() throws UnknownHostException { InetAddress address = InetAddress.getLocalHost(); // System.out.println(address);// Get the computer name and ip Address String hostAddress = address.getHostAddress(); // System.out.println(hostAddress);// obtain ip Address // String hostName = address.getHostName(); // System.out.println(hostName);// Get the computer name return hostAddress; } }
Compile operation :
javac -encoding utf-9 Main.java
java Main
边栏推荐
- Team collaborative combat penetration tool CS artifact cobalt strike
- 2022 electrician (elementary) examination questions and electrician (elementary) registration examination
- Take you to master the formatter of visual studio code
- Shell script three swordsman awk
- In 2022, 6G development has indeed warmed up
- How can enterprises and developers take advantage of the explosion of cloud native landing?
- Report on the current situation and development trend of ethoxylated sodium alkyl sulfate industry in the world and China Ⓞ 2022 ~ 2027
- Electronic tube: Literature Research on basic characteristics of 6j1
- Leetcode: a single element in an ordered array
- Wisdom tooth technology announced that it had completed the round D financing of US $100million and had not obtained a valid patent yet
猜你喜欢
Blue Bridge Cup -- guess age
How to switch between dual graphics cards of notebook computer
Preliminary analysis of smart microwave radar module
On my first day at work, this API timeout optimization put me down!
Blue Bridge Cup Guoxin Changtian single chip microcomputer -- software environment (II)
How to solve win10 black screen with only mouse arrow
[dynamic planning] counting garlic customers: the log of garlic King (the longest increasing public subsequence)
Blue Bridge Cup Guoxin Changtian MCU -- program download (III)
BUUCTF,Misc:LSB
How to solve the problem of computer networking but showing no Internet connection
随机推荐
QGIS grid processing DEM data reclassification
How the computer flushes the local DNS cache
js demo 計算本年度還剩下多少天
Correlation
[sg function]split game (2020 Jiangxi university student programming competition)
Es6~es12 knowledge sorting and summary
Some 5000+ likes, the development notes of a director of cosmic factory, leaked
2022 safety officer-b certificate examination summary and safety officer-b certificate simulation test questions
Farmersworld farmers world, no faith, how to talk about success?
SDNU_ ACM_ ICPC_ 2022_ Winter_ Practice_ 4th [individual]
Opengauss database log management guide
WFC900M-Network_ Card/Qualcomm-Atheros-AR9582-2T-2R-MIMO-802.11-N-900M-high-power-Mini-PCIe-Wi-Fi-Mod
The overseas listing of Shangmei group received feedback, and brands such as Han Shu and Yiye have been notified for many times and received attention
China's Call Center Industry 14th five year plan direction and operation analysis report Ⓔ 2022 ~ 2028
Conditional statements of shell programming
540. Single element in ordered array
Buuctf, misc: sniffed traffic
The difference between SRAM and DRAM
Data consistency between redis and database
BUUCTF,Misc:LSB