复制代码代码如下::
import Java.io.BufferedInputStream;
importieren java.io.bufferedOutputStream;
Import Java.io.BufferedReader;
Import Java.io.file;
import Java.io.FileInputStream;
importieren java.io.filenotfoundException;
importieren java.io.fileoutputStream;
Import Java.io.FileWriter;
importieren java.io.ioException;
importieren java.io.inputstream;
importieren java.io.inputStreamReader;
importieren java.io.outputstream;
Java.Text.DateFormat importieren;
Java.Text.MessageFormat importieren;
Import Java.util.ArrayList;
import Java.util.date;
Import Java.util.Enumeration;
importieren java.util.list;
Import Java.util.locale;
Import Java.util.Stringtokenizer;
import Java.util.zip.zipentry;
Import Java.util.zip.zipfile;
/**
*
* @Author IBM
*
*/
öffentliche Klassendateiutil {
public static String dirplit = "//"; // Linux Windows
/**
* Speichern Sie die Dateiabnahme in physikalischer Verzeichnisfindung
*
* @param Physicdir
* Physikalisches Verzeichnis
* @param fname
* Dateinenname des Ziels
* @param istream
* Eingabestrom der Zieldatei eingab
* @zurückkehren
*/
öffentliches statischer Boolean SaveFileByphysicalDir (String Physicalath,
InputStream isTream) {
boolesche Flagge = Falsch;
versuchen {
OutputStream os = new FileOutputStream (Physikalad);
int readBytes = 0;
Bytepuffer [] = neues Byte [8192];
while ((readBytes = iStream.read (Buffer, 0, 8192))! = -1) {
OS.Write (Puffer, 0, ReadBytes);
}
os.close ();
Flag = wahr;
} catch (FilenotFoundException e) {
E. printstacktrace ();
} catch (ioException e) {
E. printstacktrace ();
}
Rückflagge;
}
public static boolean erstellteirektory (String Dir) {
Datei f = neue Datei (DIR);
if (! f.Exists ()) {
f.mkdirs ();
}
zurückkehren;
}
public static void SaveasFileOutputStream (String PhysicalPath, String -Inhalt) {
Datei Datei = neue Datei (PhysicalPath);
boolean b = file.getParentFile (). isDirectory ();
if (! b) {
Datei tem = neue Datei (Datei.getParent ());
// tem.getParentFile (). setwritable (true);
tem.mkdirs (); // 创建目录
}
//Log.info(file.getParent ()+";"+file.getParentFile (). IsDirectory ());
FileOutputStream foutput = null;
versuchen {
foutput = new FileOutputStream (physischerPath);
foutput.write (content.getBytes ("utf-8"));
//foutput.write (content.getBytes ());
} catch (ioException ex) {
ex.printstacktrace ();
neue runimeexception (ex) werfen;
}Endlich{
versuchen {
foutput.flush ();
foutput.close ();
} catch (ioException ex) {
ex.printstacktrace ();
neue runimeexception (ex) werfen;
}
}
//Log.info ("文件保存成功:"+ PhysicalPath);
}
/**
* Kopieren 文件
* @param srcFile String
* @param Desfile String
* @return boolean
*/
public boolean copyTofile (String srcFile, String Desfile) {
Datei scrFile = neue Datei (srcFile);
if (scrFile.isfile () == true) {
int Länge;
FileInputStream fis = null;
versuchen {
fis = new FileInputStream (scrFile);
}
catch (FilenotFoundException ex) {
ex.printstacktrace ();
}
Datei Desfile = neue Datei (Desfile);
FileOutputStream fos = null;
versuchen {
fos = new FileOutputStream (Desfile, False);
}
catch (FilenotFoundException ex) {
ex.printstacktrace ();
}
Desfile = null;
Länge = (int) scrFile.length ();
Byte [] B = neues Byte [Länge];
versuchen {
fis.read (b);
fis.close ();
fos.write (b);
fos.close ();
}
catch (ioException e) {
E. printstacktrace ();
}
} anders {
scrFile = null;
false zurückgeben;
}
scrFile = null;
zurückkehren;
}
/**
* Kopieren 文件夹
* @Param Sourcedir String
* @param destdir String
* @return boolean
*/
public boolean CopyDir (String Sourcedir, String destdir) {
Datei SourceFile = New Datei (Sourcedir);
String -Tempsource;
String tempdest;
String -Dateiname;
Datei [] file = sourceFile.Listfiles ();
für (int i = 0; i <files.length; i ++) {
Dateiname = Dateien [i] .getName ();
tempsource = socrodir + "/" + Dateiname;
tempDest = destDir + "/" + Dateiname;
if (Dateien [i] .isfile ()) {
CopyToFile (TEMPSOURCE, TEMPDEST);
} anders {
CopyDir (Tempsource, TempDest);
}
}
SourceFile = null;
zurückkehren;
}
/**
* 删除指定目录及其中的所有内容。
* @param dir 要删除的目录 要删除的目录
* @return 删除成功时返回 true , 否则返回 false。
*/
public boolescher Löschgebiet (Datei Dir) {
Datei [] Einträge = dir.Listfiles ();
int Sz = Einträge.Length;
für (int i = 0; i <sz; i ++) {
if (Einträge [i] .isDirectory ()) {
if (! Deletedirectory (Einträge [i]) {
false zurückgeben;
}
} anders {
if (! Einträge [i] .Delete ()) {
false zurückgeben;
}
}
}
if (! Dir.delete ()) {
false zurückgeben;
}
zurückkehren;
}
/**
* Datei existieren prüfen
*
* @param sFileName -Dateiname
* @return boolean true - exist <br>
* Falsch - nicht existieren
*/
public static boolean peckexist (String sFileName) {
boolescher Ergebnis = falsch;
versuchen {
Datei f = Neue Datei (Sfilename);
// if (f.exists () && f.isfile () && f.canread ()) {
if (f.Exists () && f.isfile ()) {
Ergebnis = wahr;
} anders {
Ergebnis = falsch;
}
} catch (Ausnahme e) {
Ergebnis = falsch;
}
/* zurückkehren */
Rückgabeergebnis;
}
/**
* Dateigröße abrufen
*
* @param sFileName -Dateiname
* @Return Long Datei Größe (Byte) Wenn keine Datei vorliegt, return -1
*/
public static long GetSize (String sfilename) {
lange lsize = 0;
versuchen {
Datei f = Neue Datei (Sfilename);
//existieren
if (f.Exists ()) {
if (f.isfile () && f.canread ()) {
lsize = f.length ();
} anders {
lsize = -1;
}
// nicht existieren
} anders {
lsize = 0;
}
} catch (Ausnahme e) {
lsize = -1;
}
/* zurückkehren */
Rückgabe lsize;
}
/**
* Datei löschen
*
* @param sFileName -Datei NMAE
* @return boolean true - Erfolg löschen <br>
* FALSCH - FAIL DELETEN
*/
public static boolean deletefromname (String sFileName) {
boolean Breturn = wahr;
versuchen {
Datei vonile = neue Datei (Sfilename);
//existieren
if (vonile.exists ()) {
// Datei löschen
boolean Bresult = Ofile.delete ();
// FAIL löschen
if (bresult == false) {
Breturn = falsch;
}
// nicht existieren
} anders {
}
} catch (Ausnahme e) {
Breturn = falsch;
}
//zurückkehren
Breturn zurückkehren;
}
/**
* Datei entpip
*
* @param stopath Unzip -Verzeichnisweg
* @param SZIPFILE UPIP -Dateiname
*/
@Suppresswarnings ("Rawtypes")
public static void Releasezip (String Stopath, String SZIPFILE) löst Ausnahme {aus {
if (null == stopath || (""). Equals (stopath.trim ())) {
Datei objzipFile = neue Datei (SZIPFILE);
stopath = objzipFile.getParent ();
}
Zipfile Zfile = neu Zipfile (SZIPFILE);
Enumeration zlist = Zfile.entries ();
Zipentry ze = null;
byte [] buf = neues byte [1024];
while (zlist.hasmoreElements ()) {
ze = (zipentry) zlist.nextElement ();
if (ze.isdirectory ()) {
weitermachen;
}
OutputStream os =
neuer bufferedoutputstream (
neuer FileOutputStream (getRealFileName (Stopath, Ze.getName ())));
InputStream ist = neuer BufferedInputStream (ZFile.GetInputStream (ZE));
int readlen = 0;
while ((readlen = is.read (buf, 0, 1024))! = -1) {
OS.Write (Buf, 0, Readlen);
}
IS.CLOSE ();
os.close ();
}
Zfile.close ();
}
/**
* GetRealFileName
*
* @Param -basierte Stammverzeichnis
* @param abfilename Absolute Verzeichnisdateiname
* @return java.io.file Rückgabedatei
*/
@Suppresswarnings ({"rawtypes", "deaktiviert"})
private statische Datei getRealFileName (String -basiert, String ABSFileName) löst Ausnahme {aus {
Datei ret = null;
List dirs = new ArrayList ();
StringTokenizer st = new StringTokenizer (AbsFileName, System.getProperty ("Datei.Separator"));
während (St.Hasmoretokens ()) {
Dirs.Add (St.NextToken ());
}
ret = neue Datei (basiert);
if (dirs.size ()> 1) {
für (int i = 0; i <dirs.size () - 1; i ++) {
ret = neue Datei (ret, (Zeichenfolge) Dirs.get (i));
}
}
if (! ret.exists ()) {
ret.mkdirs ();
}
ret = neue Datei (ret, (String) dires.get (Dirs.SIZE () - 1));
Return Ret;
}
/**
* Copyfile
*
* @param srcFile Quelldatei
* @param targetFile Zieldatei
*/
@Suppresswarnings ("Ressource")
Statische öffentliche void Copyfile (String SrcFile, String Targetfile) löst IOException aus
{
FileInputStream reader = new FileInputStream (srcFile);
FileOutputStream writer = new FileOutputStream (TargetFile);
byte [] buffer = neues byte [4096];
Int len;
versuchen
{
Reader = new FileInputStream (SRCFile);
writer = new FileOutputStream (TargetFile);
while ((len = reader.read (puffer))> 0)
{
writer.write (buffer, 0, len);
}
}
fangen (ioException e)
{
werfen e;
}
Endlich
{
if (writer! = null) writer.close ();
if (reader! = null) reader.close ();
}
}
/**
* RenameFile
*
* @param srcFile Quelldatei
* @param targetFile Zieldatei
*/
statische öffentliche void RenameFile (String srcFile, String targetfile) löst IOException aus
{
versuchen {
CopyFile (srcFile, targetFile);
DeletefromName (srcFile);
} catch (ioException e) {
werfen e;
}
}
public static void write (String tivolimsg, String logfileName) {
versuchen{
byte [] bmsg = tivolimsg.getBytes ();
FileOutputStream fout = new FileOutputStream (logFileName, true);
fout.write (bmsg);
fout.close ();
} catch (ioException e) {
// Die Ausnahme werfen
}
}
/**
* Diese Methode wird verwendet, um die Nachrichten mit Zeitstempel, Fehlercode und den Methodendetails zu protokollieren
* @Param ERRORCD -STing
* @param className String
* @param methodName String
* @param msg String
*/
public static void Writelog (String logfile, String batchid, String ExceptionInfo) {
DateFormat df = dateFormat.getDatetimeinstance (DateFormat.Default, DateFormat.Default, Locale.japanese);
Objekt args [] = {df.format (new Date ()), batchid, exceptionInfo};
String fmtmsg = messageFormat.format ("{0}: {1}: {2}", args);
versuchen {
Datei logfile = new Datei (logfile);
if (! logfile.exists ()) {
logfile.createNewFile ();
}
FileWriter fw = neuer FileWriter (Logfile, true);
fw.write (fmtmsg);
fw.write (System.getProperty ("line.separator"));
fw.flush ();
fw.close ();
} catch (Ausnahme e) {
}
}
public static String ReadTextFile (String RealPath) löst Ausnahme {aus {
Datei Datei = neue Datei (RealPath);
if (! file.exists ()) {
System.out.println ("Datei nicht existieren!");
null zurückkehren;
}
BufferedReader BR = New BufferedReader (neuer InputStreamReader (neuer FileInputStream (RealPath), "UTF-8"));
String temp = "";
String txt = "";
while ((temp = br.readline ())! = null) {
txt+= temp;
}
Br.CLOSE ();
txt zurückgeben;
}
}