当前位置:网站首页>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
边栏推荐
- Programming language (1)
- Opengauss database log management guide
- Shell script three swordsman awk
- BUUCTF,Misc:LSB
- Blue Bridge Cup Guoxin Changtian MCU -- program download (III)
- Pat grade A - 1164 good in C (20 points)
- [sg function]split game (2020 Jiangxi university student programming competition)
- [sg function] 2021 Niuke winter vacation training camp 6 h. winter messenger 2
- [Android reverse] application data directory (files data directory | lib application built-in so dynamic library directory | databases SQLite3 database directory | cache directory)
- string
猜你喜欢

Unique in China! Alibaba cloud container service enters the Forrester leader quadrant

Data consistency between redis and database

Blue Bridge Cup -- guess age

Leetcode week 4: maximum sum of arrays (shape pressing DP bit operation)

Es6~es12 knowledge sorting and summary

Redis single thread and multi thread

Leetcode: a single element in an ordered array

How to restore the factory settings of HP computer

How can enterprises and developers take advantage of the explosion of cloud native landing?

Blue Bridge Cup Guoxin Changtian MCU -- program download (III)
随机推荐
2 spark environment setup local
Is it safe and reliable to open an account and register for stock speculation? Is there any risk?
2022 safety officer-b certificate examination summary and safety officer-b certificate simulation test questions
WFC900M-Network_ Card/Qualcomm-Atheros-AR9582-2T-2R-MIMO-802.11-N-900M-high-power-Mini-PCIe-Wi-Fi-Mod
This time, thoroughly understand bidirectional data binding 01
In 2022, 6G development has indeed warmed up
Yyds dry goods inventory hands-on teach you to create a jigsaw puzzle using the canvasapi
[dynamic programming] Ji Suan Ke: Suan tou Jun breaks through the barrier (variant of the longest increasing subsequence)
[SRS] build a specified version of SRS
IPhone development swift foundation 09 assets
How about agricultural futures?
How can enterprises and developers take advantage of the explosion of cloud native landing?
Is the account opening of Guotai Junan Securities safe and reliable? How to open Guotai Junan Securities Account
On my first day at work, this API timeout optimization put me down!
Sow of PMP
Uboot migration
How the computer flushes the local DNS cache
Label coco format data and format data in the upper left corner and lower right corner are mutually converted
Farmersworld farmers world, no faith, how to talk about success?
[flax high frequency question] leetcode 426 Convert binary search tree to sorted double linked list