Flask接口签名sign原理与实例代码浅析
246
2023-01-08
java文件处理工具类详解
本文实例为大家分享了java文件处理工具类的具体代码,供大家参考,具体内容如下
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.URL;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class FileUtil
{
private static Log logger = LogFactory.getLog(FileUtil.class);
public static void writeFile(String paramString1, String paramString2)
{
writeFile(paramString1, paramString2, "utf-8");
}
public static void writeFile(String paramString1, String paramString2, String paramString3)
{
try
{
createFolder(paramString1, true);
BufferedWriter localBufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(paramString1), paramString3));
localBufferedWriter.write(paramString2);
localBufferedWriter.close();
}
catch (IOException localIOException)
{
localIOException.printStackTrace();
}
}
public static void writeFile(String paramString, InputStream paramInputStream)
throws IOException
{
FileOutputStream localFileOutputStream = new FileOutputStream(paramString);
byte[] arrayOfByte = new byte['Ȁ'];
int i = 0;
while ((i = paramInputStream.read(arrayOfByte)) != -1) {
localFileOutputStream.write(arrayOfByte, 0, i);
}
paramInputStream.close();
localFileOutputStream.close();
}
public static String readFile(String paramString)
throws IOException
{
try
{
File localFile = new File(paramString);
String str1 = getCharset(localFile);
StringBuffer localStringBuffer = new StringBuffer();
BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(paramString), str1));
String str2;
while ((str2 = localBufferedReader.readLine()) != null) {
localStringBuffer.append(str2 + "\r\n");
}
localBufferedReader.close();
return localStringBuffer.toString();
}
catch (IOException localIOException)
{
throw localIOException;
}
}
public static boolean isExistFile(String paramString)
{
boolean bool = false;
File localFile = new File(paramString);
if (localFile.isDirectory())
{
File[] arrayOfFile = localFile.listFiles();
if ((arrayOfFile != null) && (arrayOfFile.length != 0)) {
bool = true;
}
}
return bool;
}
public static String getCharset(File paramFile)
{
String str = "GBK";
byte[] arrayOfByte = new byte[3];
try
{
int i = 0;
BufferedInputStream localBufferedInputStream = new BufferedInputStream(new FileInputStream(paramFile));
localBufferedInputStream.mark(0);
int j = localBufferedInputStream.read(arrayOfByte, 0, 3);
if (j == -1) {
return str;
}
if ((arrayOfByte[0] == -1) && (arrayOfByte[1] == -2))
{
str = "UTF-16LE";
i = 1;
}
else if ((arrayOfByte[0] == -2) && (arrayOfByte[1] == -1))
{
str = "UTF-16BE";
i = 1;
}
else if ((arrayOfByte[0] == -17) && (arrayOfByte[1] == -69) && (arrayOfByte[2] == -65))
{
str = "UTF-8";
i = 1;
}
localBufferedInputStream.reset();
if (i == 0)
{
int k = 0;
while ((j = localBufferedInputStream.read()) != -1)
{
k++;
if ((j < 240) && ((128 > j) || (j > 191))) {
if ((192 <= j) && (j <= 223))
{
j = localBufferedInputStream.read();
if (128 > j) {
break;
}
if (j > 191) {
break;
}
}
else if ((224 <= j) && (j <= 239))
{
j = localBufferedInputStream.read();
if ((128 <= j) && (j <= 191))
{
j = localBufferedInputStream.read();
if ((128 <= j) && (j <= 191)) {
str = "UTF-8";
}
}
}
}
}
}
localBufferedInputStream.close();
}
catch (Exception localException)
{
localException.printStackTrace();
}
return str;
}
public static byte[] readByte(InputStream paramInputStream)
{
try
{
byte[] arrayOfByte = new byte[paramInputStream.available()];
paramInputStream.read(arrayOfByte);
return arrayOfByte;
}
catch (FileNotFoundException localFileNotFoundException)
{
logger.error("文件路径不存在:" + localFileNotFoundException.getMessage());
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
public static byte[] readByte(String paramString)
{
try
{
FileInputStream localFileInputStream = new FileInputStream(paramString);
byte[] arrayOfByte = new byte[localFileInputStream.available()];
localFileInputStream.read(arrayOfByte);
localFileInputStream.close();
return arrayOfByte;
}
catch (FileNotFoundException localFileNotFoundException)
{
logger.error("文件路径不存在:" + paramString);
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
public static boolean writeByte(String paramString, byte[] paramArrayOfByte)
{
try
{
BufferedOutputStream localBufferedOutputStream = new BufferedOutputStream(new FileOutputStream(paramString));
localBufferedOutputStream.write(paramArrayOfByte);
localBufferedOutputStream.close();
return true;
}
catch (Exception localException)
{
localException.printStackTrace();
}
return false;
}
public static boolean deleteDir(File paramFile)
{
if (paramFile.isDirectory())
{
String[] arrayOfString = paramFile.list();
for (int i = 0; i < arrayOfString.length; i++)
{
boolean bool = deleteDir(new File(paramFile, arrayOfString[i]));
if (!bool) {
return false;
}
}
}
return paramFile.delete();
}
public static void serializeToFile(Object paramObject, String paramString)
{
try
{
ObjectOutputStream localObjectOutputStream = new ObjectOutputStream(new FileOutputStream(paramString));
localObjectOutputStream.writeObject(paramObject);
localObjectOutputStream.close();
}
catch (IOException localIOException)
{
localIOException.printStackTrace();
}
}
public static Object deserializeFromFile(String paramString)
{
try
{
File localFile = new File(paramString);
ObjectInputStream localObjectInputStream = new ObjectInputStream(new FileInputStream(localFile));
Object localObject = localObjectInputStream.readObject();
localObjectInputStream.close();
return localObject;
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
public static String inputStream2String(InputStream paramInputStream, String paramString)
throws IOException
{
BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(paramInputStream, paramString));
StringBuffer localStringBuffer = new StringBuffer();
String str = "";
while ((str = localBufferedReader.readLine()) != null) {
localStringBuffer.append(str + "\n");
}
return localStringBuffer.toString();
}
public static String inputStream2String(InputStream paramInputStream)
throws IOException
{
return inputStream2String(paramInputStream, "utf-8");
}
public static File[] getFiles(String paramString)
{
File localFile = new File(paramString);
return localFile.listFiles();
}
public static void createFolderFile(String paramString)
{
createFolder(paramString, true);
}
public static void createFolder(String paramString, boolean paramBoolean)
{
if (paramBoolean) {
paramString = paramString.substring(0, paramString.lastIndexOf(File.separator));
}
File localFile = new File(paramString);
if (!localFile.exists()) {
localFile.mkdirs();
}
}
public static void createFolder(String paramString1, String paramString2)
{
paramString1 = StringUtil.trimSufffix(paramString1, File.separator) + File.separator + paramString2;
File localFile = new File(paramString1);
localFile.mkdir();
}
public static void renameFolder(String paramString1, String paramString2)
{
File localFile = new File(paramString1);
if (localFile.exists()) {
localFile.renameTo(new File(paramString2));
}
}
public static ArrayList
{
ArrayList localArrayList = new ArrayList();
if ((paramFile != null) && (paramFile.exists()) && (paramFile.isDirectory()))
{
File[] arrayOfFile = paramFile.listFiles(new FileFilter()
{
public boolean accept(File paramAnonymousFile)
{
return paramAnonymousFile.isDirectory();
}
});
for (int i = 0; i < arrayOfFile.length; i++) {
localArrayList.add(arrayOfFile[i]);
}
}
return localArrayList;
}
public ArrayList
{
ArrayList localArrayList = new ArrayList();
File[] arrayOfFile = paramFile.listFiles(new FileFilter()
{
public boolean accept(File paramAnonymousFile)
{
return paramAnonymousFile.isFile();
}
});
for (int i = 0; i < arrayOfFile.length; i++) {
localArrayList.add(arrayOfFile[i]);
}
return localArrayList;
}
public static boolean deleteFile(String paramString)
{
File localFile = new File(paramString);
return localFile.delete();
}
public static boolean copyFile(String paramString1, String paramString2)
{
File localFile1 = new File(paramString1);
File localFile2 = new File(paramString2);
FileInputStream localFileInputStream = null;
FileOutputStream localFileOutputStream = null;
try
{
localFileInputStream = new FileInputStream(localFile1);
localFileOutputStream = new FileOutputStream(localFile2);
byte[] arrayOfByte = new byte['က'];
int i;
while ((i = localFileInputStream.read(arrayOfByte)) != -1) {
localFileOutputStream.write(arrayOfByte, 0, i);
}
localFileOutputStream.flush();
localFileOutputStream.close();
localFileInputStream.close();
}
catch (IOException localIOException)
{
localIOException.printStackTrace();
return false;
}
return true;
}
public static void backupFile(String paramString)
{
String str = paramString + ".bak";
File localFile = new File(str);
if (localFile.exists()) {
localFile.delete();
}
copyFile(paramString, str);
}
public static String getFileExt(File paramFile)
{
if (paramFile.isFile()) {
return getFileExt(paramFile.getName());
}
return "";
}
public static String getFileExt(String paramString)
{
int i = paramString.lastIndexOf(".");
if (i > -1) {
return paramString.substring(i + 1).toLowerCase();
}
return "";
}
public static void copyDir(String paramString1, String paramString2)
throws IOException
{
new File(paramString2).mkdirs();
File[] arrayOfFile = new File(paramString1).listFiles();
for (int i = 0; i < arrayOfFile.length; i++)
{
if (arrayOfFile[i].isFile())
{
String str1 = arrayOfFile[i].getAbsolutePath();
String str2 = paramString2 + "/" + arrayOfFile[i].getName();
copyFile(str1, str2);
}
if (arrayOfFile[i].isDirectory()) {
copyDirectiory(paramString1 + "/" + arrayOfFile[i].getName(), paramString2 + "/" + arrayOfFile[i].getName());
}
}
}
private static void copyDirectiory(String paramString1, String paramString2)
throws IOException
{
new File(paramString2).mkdirs();
File[] arrayOfFile = new File(paramString1).listFiles();
for (int i = 0; i < arrayOfFile.length; i++)
{
if (arrayOfFile[i].isFile())
{
String str1 = arrayOfFile[i].getAbsolutePath();
String str2 = paramString2 + "/" + arrayOfFile[i].getName();
copyFile(str1, str2);
}
if (arrayOfFile[i].isDirectory()) {
copyDirectiory(paramString1 + "/" + arrayOfFile[i].getName(), paramString2 + "/" + arrayOfFile[i].getName());
}
}
}
public static String getFileSize(File paramFile)
throws IOException
{
if (paramFile.isFile())
{
FileInputStream localFileInputStream = new FileInputStream(paramFile);
int i = localFileInputStream.available();
localFileInputStream.close();
return getSize(i);
}
return "";
}
public static String getSize(double paramDouble)
{
DecimalFormat localDecimalFormat = new DecimalFormat("0.00");
double d;
if (paramDouble > 1048576.0D)
{
d = paramDouble / 1048576.0D;
return localDecimalFormat.format(d) + " M";
}
if (paramDouble > 1024.0D)
{
d = paramDouble / 1024.0D;
return localDecimalFormat.format(d) + " KB";
}
return paramDouble + " bytes";
}
public static void downLoadFile(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse, String paramString1, String paramString2)
throws IOException
{
ServletOutputStream localServletOutputStream = paramHttpServletResponse.getOutputStream();
File localFile = new File(paramString1);
if (localFile.exists())
{
paramHttpServletResponse.setContentType("APPLICATION/OCTET-STREAM");
String str1 = getFileExt(paramString1);
if ((!Validation.isEmpty(str1)) && (str1.toLowerCase().equals("apk"))) {
paramHttpServletResponse.setContentType("application/vnd.android.package-archive");
}
String str2 = paramString2;
String str3 = paramHttpServletRequest.getHeader("USER-AGENT");
if ((str3 != null) && (str3.indexOf("MSIE") == -1))
{
try
{
String localObject1 = transCharacter(paramHttpServletRequest, str2);
paramHttpServletResponse.setHeader("Content-Disposition", "attachment; filename=" + (String)localObject1);
}
catch (Exception localException1)
{
localException1.printStackTrace();
}
}
else
{
str2 = URLEncoder.encode(str2, "utf-8");
paramHttpServletResponse.addHeader("Content-Disposition", "attachment;filename=" + str2);
}
Object localObject1 = null;
try
{
localServletOutputStream = paramHttpServletResponse.getOutputStream();
localObject1 = new FileInputStream(paramString1);
byte[] arrayOfByte = new byte['Ѐ'];
int i = 0;
while ((i = ((FileInputStream)localObject1).read(arrayOfByte)) > 0) {
localServletOutputStream.write(arrayOfByte, 0, i);
}
localServletOutputStream.flush();
}
catch (Exception localException2)
{
localException2.printStackTrace();
}
finally
{
if (localObject1 != null)
{
((FileInputStream)localObject1).close();
localObject1 = null;
}
if (localServletOutputStream != null)
{
localServletOutputStream.close();
localServletOutputStream = null;
paramHttpServletResponse.flushBuffer();
}
}
}
else
{
localServletOutputStream.write("文件不存在!".getBytes("utf-8"));
}
}
private static String transCharacter(HttpServletRequest paramHttpServletRequest, String paramString)
throws Exception
{
if (paramHttpServletRequest.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0) {
return URLEncoder.encode(paramString, "UTF-8");
}
if (paramHttpServletRequest.getHeader("USER-AGENT").toLowerCase().indexOf("firefox") > 0) {
return new String(paramString.getBytes("UTF-8"), "ISO8859-1");
}
return new String(paramString.getBytes("gbk"), "ISO8859-1");
}
public static String getParentDir(String paramString1, String paramString2)
{
File localFile = new File(paramString2);
String str1 = localFile.getParent();
String str2 = str1.replace(paramString1, "");
return str2.replace(File.separator, "/");
}
public static String getClassesPath()
{
String str = StringUtil.trimSufffix(AppUtil.getRealPath("/"), File.separator) + "\\WEB-INF\\classes\\".replace("\\", File.separator);
return str;
}
public static String getRootPath()
{
String str = StringUtil.trimSufffix(AppUtil.getRealPath("/"), File.separator) + File.separator;
return str;
}
public static String readFromProperties(String paramString1, String paramString2)
{
String str1 = "";
BufferedInputStream localBufferedInputStream = null;
try
{
localBufferedInputStream = new BufferedInputStream(new FileInputStream(paramString1));
Properties localProperties = new Properties();
localProperties.load(localBufferedInputStream);
str1 = localProperties.getProperty(paramString2);
String str2 = str1;
return str2;
}
catch (Exception localException)
{
localException.printStackTrace();
}
finally
{
if (localBufferedInputStream != null) {
try
{
localBufferedInputStream.close();
}
catch (IOException localIOException3)
{
localIOException3.printStackTrace();
}
}
}
return str1;
}
public static boolean saveProperties(String paramString1, String paramString2, String paramString3)
{
StringBuffer localStringBuffer = new StringBuffer();
int i = 0;
BufferedReader localBufferedReader = null;
try
{
localBufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(paramString1), "utf-8"));
String str;
while ((str = localBufferedReader.readLine()) != null) {
if (str.startsWith(paramString2))
{
localStringBuffer.append(paramString2 + "=" + paramString3 + "\r\n");
i = 1;
}
else
{
localStringBuffer.append(str + "\r\n");
}
}
if (i == 0) {
localStringBuffer.append(paramString2 + "=" + paramString3 + "\r\n");
}
writeFile(paramString1, localStringBuffer.toString(), "utf-8");
boolean bool1 = true;
retedqEKurn bool1;
}
catch (Exception localException)
{
localException.printStackTrace();
boolean bool2 = false;
return bool2;
}
finally
{
if (localBufferedReader != null) {
try
{
localBufferedReader.close();
}
catch (IOException localIOException3)
{
localIOException3.printStackTrace();
}
}
}
}
public static boolean delProperties(String paramString1, String paramString2)
{
StringBuffer localStringBuffer = new StringBuffer();
BufferedReader localBufferedReader = null;
try
{
localBufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(paramString1), "utf-8"));
String str;
while ((str = localBufferedReader.readLine()) != null) {
if (!str.startsWith(paramString2)) {
localStringBuffer.append(str + "\r\n");
}
}
writeFile(paramString1, localStringBuffer.toString(), "utf-8");
boolean bool1 = true;
return bool1;
}
catch (Exception localException)
{
localException.printStackTrace();
boolean bool2 = false;
return bool2;
}
finally
{
if (localBufferedReader != null) {
try
{
localBufferedReader.close();
}
catch (IOException localIOException3)
{
localIOException3.printStackTrace();
}
}
}
}
public static List
throws IOException, ClassNotFoundException, IllegalStateException
{
if (!paramClass.isInterface()) {
throw new IllegalStateException("Class not a interface.");
}
ClassLoader localClassLoader = paramClass.getClassLoader();
String str = paramBoolean ? paramClass.getPackage().getName() : "/";
return findClasses(paramClass, localClassLoader, str);
}
private static List
throws IOException, ClassNotFoundException
{
ArrayList localArrayList = new ArrayList();
String str = paramString.replace(".", "/");
Object localObject;
if (!str.equals("/"))
{
localObject = paramClassLoader.getResources(str);
while (((Enumeration)localObject).hasMoreElements())
{
URL localURL = (URL)((Enumeration)localObject).nextElement();
localArrayList.addAll(findResources(paramClass, new File(localURL.getFile()), paramString));
}
}
else
{
localObject = paramClassLoader.getResource("").getPath();
localArrayList.addAll(findResources(paramClass, new File((String)localObject), paramString));
}
return localArrayList;
}
private static List
throws ClassNotFoundException
{
ArrayList localArrayList = new ArrayList();
if (!paramFile.exists()) {
return Collections.EMPTY_LIST;
}
File[] arrayOfFile1 = paramFile.listFiles();
for (File localFile : arrayOfFile1) {
if (localFile.isDirectory())
{
if (!localFile.getName().contains(".")) {
if (!paramString.equals("/")) {
localArrayList.addAll(findResources(paramClass, localFile, paramString + "." + localFile.getName()));
} else {
localArrayList.addAll(findResources(paramClass, localFile, localFile.getName()));
}
}
}
else if (localFile.getName().endsWith(".class"))
{
Class localClass = null;
if (!paramString.equals("/")) {
localClass = Class.forName(paramString + "." + localFile.getName().substring(0, localFile.getName().length() - 6));
} else {
localClass = Class.forName(localFile.getName().substring(0, localFile.getName().length() - 6));
}
edqEKif ((paramClass.isAssignableFrom(localClass)) && (!paramClass.equals(localClass))) {
localArrayList.add(localClass);
}
}
}
return localArrayList;
}
public static Object cloneObject(Object paramObject)
throws Exception
{
ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream localObjectOutputStream = new ObjectOutputStream(localByteArrayOutputStream);
localObjectOutputStream.writeObject(paramObject);
ByteArrayInputStream localByteArrayInputStream = new ByteArrayInputStream(localByteArrayOutputStream.toByteArray());
ObjectInputStream localObjectInputStream = new ObjectInputStream(localByteArrayInputStream);
return localObjectInputStream.readObject();
}
public static boolean isFileType(String paramString1, String paramString2)
{
boolean bool = false;
if (("IMAGE".equals(paramString2)) && ((paramString1.toUpperCase().equals("JPG")) || (paramString1.toUpperCase().equals("PNG")) || (paramString1.toUpperCase().equals("GIF")) || (paramString1.toUpperCase().equals("JPEG")))) {
bool = true;
}
return bool;
}
public static boolean isFileType(String paramString, String[] paramArrayOfString)
{
boolean bool = false;
if ((paramArrayOfString != null) && (paramArrayOfString.length > 0)) {
for (int i = 0; i < paramArrayOfString.length; i++) {
if (paramString.toUpperCase().equals(paramArrayOfString[i].toUpperCase())) {
return true;
}
}
}
return bool;
}
public static boolean isErrorFileType(String paramString)
{
String[] arrayOfString = null;
String str = AppConfigUtil.get("File_Filter_Val");
if ((AppConfigUtil.getICache("FILEFILTER_KEY") == null) && (str != null))
{
arrayOfString = str.split("\\|");
AppConfigUtil.setICache("FILEFILTER_KEY", arrayOfString);
}
else
{
arrayOfString = (String[])AppConfigUtil.getICache("FILEFILTER_KEY");
}
return isFileType(paramString, arrayOfString);
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~