198 lines
6.0 KiB
Java
198 lines
6.0 KiB
Java
|
|
package com.mesasoft.cn.sketch.util;
|
|||
|
|
|
|||
|
|
import org.apache.log4j.Logger;
|
|||
|
|
|
|||
|
|
import java.io.*;
|
|||
|
|
import java.util.ArrayList;
|
|||
|
|
import java.util.List;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author yjy
|
|||
|
|
* @version 1.0
|
|||
|
|
* @date 2021/2/25 6:11 下午
|
|||
|
|
*/
|
|||
|
|
public class FileUtils {
|
|||
|
|
private static final Logger LOG = Logger.getLogger(FileUtils.class);
|
|||
|
|
|
|||
|
|
public static List<String> readTxtFileIntoStringArrList(String filePath)
|
|||
|
|
{
|
|||
|
|
List<String> list = new ArrayList<>();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
String encoding = "GBK";
|
|||
|
|
File file = new File(filePath);
|
|||
|
|
if (file.isFile() && file.exists())
|
|||
|
|
{ // 判断文件是否存在
|
|||
|
|
InputStreamReader read = new InputStreamReader(
|
|||
|
|
new FileInputStream(file), encoding);
|
|||
|
|
BufferedReader bufferedReader = new BufferedReader(read);
|
|||
|
|
String lineTxt = null;
|
|||
|
|
|
|||
|
|
while ((lineTxt = bufferedReader.readLine()) != null)
|
|||
|
|
{
|
|||
|
|
if (!lineTxt.equals("")) {
|
|||
|
|
list.add(lineTxt.trim());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
bufferedReader.close();
|
|||
|
|
read.close();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
System.out.println("Can not find file: " + filePath);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
System.out.println("Error occurred in Function 'readTxtFileIntoStringArrList'");
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return list;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static List<String> getBatchLineReadIn(BufferedReader bufferedReader, int batchSize){
|
|||
|
|
List<String> list = new ArrayList<>();
|
|||
|
|
String lineTxt;
|
|||
|
|
try{
|
|||
|
|
while ((lineTxt = bufferedReader.readLine()) != null && list.size()<batchSize)
|
|||
|
|
{
|
|||
|
|
if (!lineTxt.equals("")) {
|
|||
|
|
list.add(lineTxt.trim());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (IOException e){
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
return list;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static void createFile(File filePath, String fileName){
|
|||
|
|
try {
|
|||
|
|
File file = new File(filePath.toString() + "/" + fileName);
|
|||
|
|
|
|||
|
|
if (!filePath.exists()){
|
|||
|
|
filePath.mkdirs();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
boolean isCreate = file.createNewFile();
|
|||
|
|
if (isCreate){
|
|||
|
|
LOG.info("File " + fileName + " is created.");
|
|||
|
|
}
|
|||
|
|
} catch (IOException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static void createFile(File file){
|
|||
|
|
try {
|
|||
|
|
boolean isCreate = file.createNewFile();
|
|||
|
|
if (isCreate){
|
|||
|
|
LOG.info("File " + file + " is created.");
|
|||
|
|
}
|
|||
|
|
} catch (IOException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public static String readJsonFile(String fileName) {
|
|||
|
|
String jsonStr = "";
|
|||
|
|
try {
|
|||
|
|
File jsonFile = new File(fileName);
|
|||
|
|
FileReader fileReader = new FileReader(jsonFile);
|
|||
|
|
|
|||
|
|
Reader reader = new InputStreamReader(new FileInputStream(jsonFile), "utf-8");
|
|||
|
|
int ch = 0;
|
|||
|
|
StringBuffer sb = new StringBuffer();
|
|||
|
|
while ((ch = reader.read()) != -1) {
|
|||
|
|
sb.append((char) ch);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
fileReader.close();
|
|||
|
|
reader.close();
|
|||
|
|
jsonStr = sb.toString();
|
|||
|
|
return jsonStr;
|
|||
|
|
} catch (IOException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static String getFileName(File file){
|
|||
|
|
String[] tmp = file.toString().split("/");
|
|||
|
|
String fileName = tmp[tmp.length-1];
|
|||
|
|
return fileName;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public static void writerClose(OutputStreamWriter outWriter, OutputStream outStream) throws IOException {
|
|||
|
|
assert outWriter != null;
|
|||
|
|
outWriter.close();
|
|||
|
|
outStream.close();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static void readerClose(BufferedReader bufferedReader, InputStreamReader inputStreamReader) throws IOException {
|
|||
|
|
assert inputStreamReader != null;
|
|||
|
|
bufferedReader.close();
|
|||
|
|
inputStreamReader.close();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//执行cmd命令,获取返回结果
|
|||
|
|
public static String execCMD(String command) {
|
|||
|
|
StringBuilder sb =new StringBuilder();
|
|||
|
|
try {
|
|||
|
|
Process process=Runtime.getRuntime().exec(command);
|
|||
|
|
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream()));
|
|||
|
|
String line;
|
|||
|
|
while((line=bufferedReader.readLine())!=null)
|
|||
|
|
{
|
|||
|
|
sb.append(line+"\n");
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
return e.toString();
|
|||
|
|
}
|
|||
|
|
return sb.toString();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static Long getFileLineNum(File file){
|
|||
|
|
Long num = 0L;
|
|||
|
|
if (!file.exists()){
|
|||
|
|
LOG.error("File not exist: " + file.toString());
|
|||
|
|
} else {
|
|||
|
|
String res = FileUtils.execCMD("wc -l " + file.toString());
|
|||
|
|
num = Long.parseLong(res.trim().split(" ")[0]);
|
|||
|
|
}
|
|||
|
|
return num;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static int getMaxLength(String filePath) {
|
|||
|
|
int lengthDomain = 0;
|
|||
|
|
try {
|
|||
|
|
String encoding = "UTF-8";
|
|||
|
|
File file = new File(filePath);
|
|||
|
|
if (file.isFile() && file.exists()) {
|
|||
|
|
InputStreamReader read = new InputStreamReader(
|
|||
|
|
new FileInputStream(file), encoding);
|
|||
|
|
BufferedReader bufferedReader = new BufferedReader(read);
|
|||
|
|
String lineTxt = null;
|
|||
|
|
while ((lineTxt = bufferedReader.readLine()) != null) {
|
|||
|
|
String[] split = lineTxt.split("\\.");
|
|||
|
|
if (split.length > lengthDomain) {
|
|||
|
|
lengthDomain = split.length;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
read.close();
|
|||
|
|
} else {
|
|||
|
|
LOG.error("FilePath is wrong--->{" + filePath + "}<---");
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
LOG.error("Get filePathData error--->{" + e + "}<---");
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
return lengthDomain;
|
|||
|
|
}
|
|||
|
|
}
|