当前位置:网站首页>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
边栏推荐
- Blue Bridge Cup -- guess age
- On my first day at work, this API timeout optimization put me down!
- 1068. Consolidation of ring stones (ring, interval DP)
- [Android reverse] application data directory (files data directory | lib application built-in so dynamic library directory | databases SQLite3 database directory | cache directory)
- China's coal industry investment strategic planning future production and marketing demand forecast report Ⓘ 2022 ~ 2028
- Why should enterprises do more application activities?
- 2022 G3 boiler water treatment registration examination and G3 boiler water treatment examination papers
- Sow of PMP
- Classification and extension of OC
- Correlation
猜你喜欢
JS closure knowledge points essence
2 spark environment setup local
Farmersworld farmers world, no faith, how to talk about success?
Overview of Yunxi database executor
Flutter internationalized Intl
On my first day at work, this API timeout optimization put me down!
Quick one click batch adding video text watermark and modifying video size simple tutorial
Buuctf, misc: n solutions
Covariance
[secretly kill little partner pytorch20 days] - [day3] - [example of text data modeling process]
随机推荐
[dynamic planning] counting garlic customers: the log of garlic King (the longest increasing public subsequence)
Sed、Awk
DR-NAS26-Qualcomm-Atheros-AR9582-2T-2R-MIMO-802.11-N-5GHz-high-power-Mini-PCIe-Wi-Fi-Module
Take you to master the formatter of visual studio code
Oil monkey plug-in
[dynamic programming] Jisuan Ke: Jumping stake (variant of the longest increasing subsequence)
The reason why the computer runs slowly and how to solve it
To rotate 90 degrees clockwise and modify the video format
C deep anatomy - the concept of keywords and variables # dry inventory #
Sow of PMP
Summary of basic knowledge of exception handling
On my first day at work, this API timeout optimization put me down!
Programming language (2)
Harbor integrated LDAP authentication
Pan Yueming helps Germany's Rochester Zodiac custom wristwatch
2022 safety officer-a certificate registration examination and summary of safety officer-a certificate examination
Yyds dry goods inventory Spring Festival "make" your own fireworks
2022 G3 boiler water treatment registration examination and G3 boiler water treatment examination papers
Analysis report on the development trend and Prospect of global and Chinese supercontinuum laser source industry Ⓚ 2022 ~ 2027
[Android reverse] application data directory (files data directory | lib application built-in so dynamic library directory | databases SQLite3 database directory | cache directory)