复制代码代码如下:
استيراد java.io.bufferedInputStream ؛
استيراد java.io.bufferedOutputStream ؛
استيراد java.io.bufferedreader ؛
استيراد java.io.file ؛
استيراد java.io.fileInputStream ؛
استيراد java.io.filenotfoundException ؛
استيراد java.io.fileOutputStream ؛
استيراد java.io.filewriter ؛
استيراد java.io.ioException ؛
استيراد java.io.inputstream ؛
استيراد java.io.inputstreamreader ؛
استيراد java.io.outputStream ؛
استيراد java.text.dateformat ؛
استيراد java.text.messageformat ؛
استيراد java.util.arraylist ؛
استيراد java.util.date ؛
استيراد java.util.enumeration ؛
استيراد java.util.list ؛
استيراد java.util.locale ؛
استيراد java.util.stringTokenizer ؛
استيراد java.util.zip.zipentry ؛
استيراد java.util.zip.zipfile ؛
/**
*
* Author IBM
*
*/
الفئة العامة fileutil {
السلسلة الثابتة العامة dirsplit = "//" ؛ // linux windows
/**
* احفظ تراكم الملف إلى الدليل الفعلي لاستنشاق
*
* param physicaldir
* الدليل الفيزيائي
* param fname
* اسم ملف الوجهة
* param isTream
* دفق إدخال ملف الوجهة
* @يعود
*/
SavefileByPhysicaldir الثابت العام الثابت (String PhysicalPath ،
inputStream isTream) {
العلم المنطقي = خطأ ؛
يحاول {
OutputStream OS = FileOutputStream جديد (PhysicalPath) ؛
int readBytes = 0 ؛
Byte Buffer [] = New Byte [8192] ؛
بينما ((readBytes = isTream.Read (Buffer ، 0 ، 8192))! = -1) {
OS.Write (Buffer ، 0 ، readBytes) ؛
}
OS.Close () ؛
العلم = صحيح ؛
} catch (fileNotfoundException e) {
E.PrintStackTrace () ؛
} catch (ioException e) {
E.PrintStackTrace () ؛
}
العلم العودة
}
BOOLEAN STATIC STATIC CRATERICTORY (String dir) {
ملف f = ملف جديد (dir) ؛
if (! f.exists ()) {
f.mkdirs () ؛
}
العودة صحيح.
}
الفراغ الثابت العام seveasfileOutputStream (String PhysicalPath ، محتوى السلسلة) {
ملف الملف = ملف جديد (PhysicalPath) ؛
Boolean B = file.getParentFile (). Isdirectory () ؛
إذا (! ب) {
ملف tem = ملف جديد (file.getParent ()) ؛
// tem.getParentFile (). setTerable (true) ؛
tem.mkdirs () ؛ // 创建目录
}
//log.info(file.getParent ()+"؛"+file.getParentFile (). isDirectory ()) ؛
fileOutputStream foutput = null ؛
يحاول {
foutput = fileOutputStream جديد (PhysicalPath) ؛
foutput.write (content.getBytes ("utf-8")) ؛
//foutput.write (content.getBytes ()) ؛
} catch (ioException ex) {
ex.printStackTrace () ؛
رمي new RunTimeException (ex) ؛
}أخيراً{
يحاول {
foutput.flush () ؛
foutput.close () ؛
} catch (ioException ex) {
ex.printStackTrace () ؛
رمي new RunTimeException (ex) ؛
}
}
//log.info ("文件保存成功:"+ physicalpath) ؛
}
/**
* نسخة 文件
* @param srcfile string
* @param desfile string
* @العودة منطقية
*/
popletofile المنطقية العامة (سلسلة srcfile ، سلسلة desfile) {
ملف scrfile = ملف جديد (srcfile) ؛
if (scrfile.isfile () == true) {
طول int
FileInputStream Fis = NULL ؛
يحاول {
FIS = جديد fileInputStream (scrfile) ؛
}
catch (fileNotfoundException ex) {
ex.printStackTrace () ؛
}
ملف desfile = ملف جديد (desfile) ؛
fileOutputStream fos = null ؛
يحاول {
fos = fileOutputStream جديد (desfile ، false) ؛
}
catch (fileNotfoundException ex) {
ex.printStackTrace () ؛
}
desfile = null ؛
الطول = (int) scrfile.length () ؛
بايت [] ب = بايت جديد [طول] ؛
يحاول {
Fis.Read (B) ؛
fis.close () ؛
fos.write (b) ؛
fos.close () ؛
}
catch (ioException e) {
E.PrintStackTrace () ؛
}
} آخر {
scrfile = null ؛
العودة كاذبة
}
scrfile = null ؛
العودة صحيح.
}
/**
* نسخة 文件夹
* @Param Sourcedir String
* @param destdir string
* @العودة منطقية
*/
copydir المنطقي العام (String Sourcedir ، String destdir) {
SourceFile = ملف جديد (Sourcedir) ؛
سلسلة tempsource
سلسلة tempdest ؛
اسم ملف السلسلة ؛
file [] files = sourceFile.ListFiles () ؛
لـ (int i = 0 ؛ i <files.length ؛ i ++) {
filename = files [i] .getName () ؛
TempSource = Sourcedir + "/" + اسم الملف ؛
tempdest = destdir + "/" + اسم الملف ؛
إذا (الملفات [i] .isfile ()) {
copletofile (tempsource ، tempdest) ؛
} آخر {
copydir (TempSource ، tempdest) ؛
}
}
SourceFile = null ؛
العودة صحيح.
}
/**
* 删除指定目录及其中的所有内容。
* param dir 要删除的目录
* return 删除成功时返回 صحيح , 否则返回 خطأ。
*/
الحذف المنطقي العام (ملف) {
ملف [] إدخالات = dir.listfiles () ؛
int sz = contries.length ؛
لـ (int i = 0 ؛ i <sz ؛ i ++) {
إذا (إدخالات [i] .isdirectory ()) {
if (! deletedirectory (إدخالات [i])) {
العودة كاذبة
}
} آخر {
إذا (! إدخالات [i] .delete ()) {
العودة كاذبة
}
}
}
if (! dir.delete ()) {
العودة كاذبة
}
العودة صحيح.
}
/**
* ملف موجود
*
* @param sfilename اسم ملف
* regurn Boolean True - موجود <br>
* خطأ - غير موجود
*/
الفعل المنطقي الثابت العام (سلسلة sfilename) {
نتيجة منطقية = خطأ ؛
يحاول {
ملف f = ملف جديد (sfilename) ؛
// if (f.exists () && f.isfile () && f.canread ()) {
if (f.exists () && f.isfile ()) {
النتيجة = صواب ؛
} آخر {
النتيجة = خطأ ؛
}
} catch (استثناء e) {
النتيجة = خطأ ؛
}
/* يعود */
نتيجة العودة
}
/**
* احصل على حجم الملف
*
* @param sfilename اسم ملف
* حجم ملف Long Return (بايت) عندما لا يوجد ملف إرجاع -1
*/
GetSize Static Static Public (سلسلة sfilename) {
lsize طويل = 0 ؛
يحاول {
ملف f = ملف جديد (sfilename) ؛
//يخرج
if (f.exists ()) {
if (f.isfile () && f.canread ()) {
lsize = f.length () ؛
} آخر {
lsize = -1 ؛
}
// غير موجود
} آخر {
lsize = 0 ؛
}
} catch (استثناء e) {
lsize = -1 ؛
}
/* يعود */
إرجاع lsize.
}
/**
* حذف الملف
*
* param sfilename file nmae
* return boolean true - حذف النجاح <br>
* خطأ - حذف الفشل
*/
الحذف المنطقي الثابت العمومي (سلسلة sfilename) {
BOOLEAN BRETURN = صحيح ؛
يحاول {
ملف OFILE = ملف جديد (sfilename) ؛
//يخرج
if (forile.exists ()) {
// حذف الملف
Boolean bresult = forile.delete () ؛
// حذف الفشل
if (bresult == false) {
Breturn = false ؛
}
// غير موجود
} آخر {
}
} catch (استثناء e) {
Breturn = false ؛
}
//يعود
إرجاع بريتن.
}
/**
* ملف UNXIP
*
* param stopath path directory path
* param szipfile اسم ملف unsip
*/
suppressWarnings ("الأنواع الخام")
referezip referezip (String stopath ، String szipfile) يلقي الاستثناء {
if (null == stopath || (""). يساوي (stopath.trim ())) {
ملف objzipfile = ملف جديد (szipfile) ؛
stopath = objzipfile.getParent () ؛
}
zipfile zfile = new zipfile (szipfile) ؛
التعداد Zlist = zFile.Entries () ؛
zipentry ze = null ؛
Byte [] buf = new byte [1024] ؛
بينما (Zlist.HasmoreElements ()) {
Ze = (zipentry) Zlist.NextElement () ؛
if (ze.isdirectory ()) {
يكمل؛
}
OutputStream OS =
جديد bufferedoutputstream (
FileOutputStream جديد (getRealFilename (stopath ، ze.getName ())))) ؛
inputStream هو = جديد bufferedInputStream (zFile.getInputStream (ZE)) ؛
int readlen = 0 ؛
بينما ((readlen = is.read (buf ، 0 ، 1024))! = -1) {
OS.Write (buf ، 0 ، readlen) ؛
}
is.close () ؛
OS.Close () ؛
}
zfile.close () ؛
}
/**
* getRealFilename
*
* دليل جذر Param ripenir
* param absfilename اسم ملف الدليل المطلق
* regurn java.io.file ملف الإرجاع
*/
suppressWarnings ({"RawTypes" ، "Unchected"})
ملف ثابت خاص getRealFiLename (String riptire ، absfilename) يلقي الاستثناء {
ملف ret = null ؛
قائمة dirs = new ArrayList () ؛
StringTokenizer st = new StringTokenizer (absfilename ، system.getProperty ("file.separator")) ؛
بينما (St.Hasmoretokens ()) {
dirs.add (st.nextToken ()) ؛
}
RET = ملف جديد (riptired) ؛
if (dirs.size ()> 1) {
لـ (int i = 0 ؛ i <dirs.size () - 1 ؛ i ++) {
ret = ملف جديد (ret ، (سلسلة) dirs.get (i)) ؛
}
}
if (! ret.exists ()) {
ret.mkdirs () ؛
}
ret = ملف جديد (ret ، (string) dirs.get (dirs.size () - 1)) ؛
العودة ret.
}
/**
* copyfile
*
* param srcfile source file
* param targetfile ملف الهدف
*/
suppressWarnings ("الموارد")
static public void copyfile (سلسلة srcfile ، سلسلة الهدف) يلقي ioException
{
FileInputStream Reader = جديد fileInputStream (srcfile) ؛
FileOutputStream Writer = جديد fileOutputStream (TargetFile) ؛
Byte [] Buffer = New Byte [4096] ؛
int len ؛
يحاول
{
reader = جديد fileInputStream (srcfile) ؛
كاتب = جديد fileOutputStream (TargetFile) ؛
بينما ((len = reader.read (buffer))> 0)
{
Writer.Write (Buffer ، 0 ، Len) ؛
}
}
الصيد (ioException E)
{
رمي ه ؛
}
أخيراً
{
إذا (الكاتب! = null) الكاتب. cclose () ؛
if (reader! = null) reader.close () ؛
}
}
/**
* RENAMEFILE
*
* param srcfile source file
* param targetfile ملف الهدف
*/
rewamefile الفراغ العام الثابت (سلسلة srcfile ، سلسلة الهدف) يلقي ioException
{
يحاول {
copyfile (srcfile ، targetfile) ؛
deleteFromName (srcfile) ؛
} catch (ioException e) {
رمي ه ؛
}
}
كتابة الفراغ الثابتة العامة (سلسلة tivolimsg ، سلسلة logFilename) {
يحاول{
byte [] bmsg = tivolimsg.getBytes () ؛
fileOutputStream fout = new FileOutputStream (logFilename ، true) ؛
fout.write (BMSG) ؛
fout.close () ؛
} catch (ioException e) {
// رمي الاستثناء
}
}
/**
* يتم استخدام هذه الطريقة لتسجيل الرسائل باستخدام الطابع الزمني ورمز الخطأ وتفاصيل الطريقة
* @param errorcd سلسلة
* @param classname string
* @Param MethodName String
* @param msg string
*/
كتاب Void static static static (سلسلة تسجيل الدخول ، السلسلة الثقافية ، سلسلة استثناءات) {
DateFormat df = dateFormat.getDateTimeInstance (DateFormat.default ، dateFormat.default ، locale.japanese) ؛
args args [] = {df.format (new date ()) ، batchid ، stiventInfo} ؛
String fmtmsg = messageformat.format ("{0}: {1}: {2}" ، args) ؛
يحاول {
ملف logfile = ملف جديد (logfile) ؛
if (! logfile.exists ()) {
logfile.createNewFile () ؛
}
filewriter fw = new filewriter (logfile ، true) ؛
fw.write (FMTMSG) ؛
fw.write (system.getProperty ("line.separator")) ؛
fw.flush () ؛
fw.close () ؛
} catch (استثناء e) {
}
}
السلسلة الثابتة العامة ReadTextFile (String RealPath) يلقي الاستثناء {
ملف الملف = ملف جديد (RealPath) ؛
if (! file.exists ()) {
System.out.println ("ملف غير موجود!") ؛
العودة لاغية.
}
BufferedReader BR = جديد BufferedReader (New InputStreamReader (FileInputStream جديد (RealPath) ، "UTF-8")) ؛
سلسلة temp = "" ؛
سلسلة txt = "" ؛
بينما ((temp = br.readline ())! = null) {
txt+= temp ؛
}
br.close () ؛
إرجاع txt ؛
}
}