当前位置:网站首页>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
边栏推荐
- Teach you how to run two or more MySQL databases at the same time in one system
- pivot ROP Emporium
- IPhone development swift foundation 08 encryption and security
- LeetCode 540. A single element in an ordered array
- Some 5000+ likes, the development notes of a director of cosmic factory, leaked
- Correlation
- Farmersworld farmers world, no faith, how to talk about success?
- The 14th five year plan and investment feasibility study report of China's industry university research cooperation Ⓧ 2022 ~ 2028
- 1068. Consolidation of ring stones (ring, interval DP)
- C3p0 connection MySQL 8.0.11 configuration problem
猜你喜欢
![[Android reverse] use DB browser to view and modify SQLite database (download DB browser installation package | install DB browser tool)](/img/1d/044e81258db86cf34eddd3b8f5cf90.jpg)
[Android reverse] use DB browser to view and modify SQLite database (download DB browser installation package | install DB browser tool)

On my first day at work, this API timeout optimization put me down!

Can you draw with turtle?
![[template summary] - binary search tree BST - Basics](/img/78/782129abea06c8e3bef69a121cbce0.jpg)
[template summary] - binary search tree BST - Basics
![[actual combat record] record the whole process of the server being attacked (redis vulnerability)](/img/9c/34b916aca2f9270ec4cf4651f0de7e.jpg)
[actual combat record] record the whole process of the server being attacked (redis vulnerability)

Correlation

Electronic tube: Literature Research on basic characteristics of 6j1

2022 free examination questions for safety management personnel of hazardous chemical business units and reexamination examination for safety management personnel of hazardous chemical business units

What are the common computer problems and solutions

What indicators should be paid attention to in current limit monitoring?
随机推荐
[SRS] build a specified version of SRS
Pat grade A - 1164 good in C (20 points)
Uboot migration
Wisdom tooth technology announced that it had completed the round D financing of US $100million and had not obtained a valid patent yet
string
Analysis report on the development prospect and investment strategy of global and Chinese modular automation systems Ⓟ 2022 ~ 2027
WiFi 2.4g/5g/6g channel distribution
Pooling idea: string constant pool, thread pool, database connection pool
IPhone development swift foundation 09 assets
Oil monkey plug-in
Unique in China! Alibaba cloud container service enters the Forrester leader quadrant
Report on the development status and investment planning trends of China's data center industry Ⓡ 2022 ~ 2028
Programming language (1)
How to solve the problem of requiring a password when accessing your network neighborhood on your computer
Exness: the Central Bank of England will raise interest rates again in March, and inflation is coming
Report on the current situation and development trend of ethoxylated sodium alkyl sulfate industry in the world and China Ⓞ 2022 ~ 2027
Quick one click batch adding video text watermark and modifying video size simple tutorial
Can you draw with turtle?
China HDI market production and marketing demand and investment forecast analysis report Ⓢ 2022 ~ 2028
BUUCTF,Misc:LSB