复制代码代码如下 :
import java.io.bufferedInputStream;
import java.io.bufferedOutputStream;
import java.io.bufferedReader;
import java.io.file;
import java.io.fileInputStream;
import java.io.filenotfoundException;
import java.io.fileoutputStream;
import java.io.filewriter;
import java.io.ioexception;
import java.io.inputstream;
import java.io.inputStreamReader;
import java.io.outputStream;
import java.text.dateformat;
import java.text.messageformat;
java.util.arraylist 가져 오기;
import java.util.date;
java.util.enumeration 가져 오기;
Java.util.list 가져 오기;
java.util.locale import;
java.util.stringtokenizer 가져 오기;
java.util.zip.zipentry import;
import java.util.zip.zipfile;
/**
*
* @Author IBM
*
*/
공개 수업 파일 {
public static string dirsplit = "//"; // Linux Windows
/**
* 물리적 디렉토리 정보에 파일을 저장합니다
*
* @Param PhysicalDir
* 물리적 디렉토리
* @param fname
* 대상의 파일 이름
* @param istream
* 대상 파일의 입력 스트림
* @반품
*/
Public STATIC BOOLEAN SAVEFILEBYPHYSICALDIR (String PhysicalPath,
입력 스트림 istream) {
부울 플래그 = 거짓;
노력하다 {
outputStream os = 새 FileOutputStream (PhysicalPath);
int readbytes = 0;
바이트 버퍼 [] = 새로운 바이트 [8192];
while ((ReadBytes = istream.read (버퍼, 0, 8192))! = -1) {
os.write (버퍼, 0, ReadBytes);
}
os.close ();
flag = true;
} catch (filenotfoundException e) {
e.printstacktrace ();
} catch (ioexception e) {
e.printstacktrace ();
}
리턴 플래그;
}
Public STATIC BOOLEAN CREATEDIRECTORY (String Dir) {
파일 f = 새 파일 (dir);
if (! f.exists ()) {
f.mkdirs ();
}
진실을 반환하십시오.
}
public static void saveasfileoutputStream (String PhysicalPath, String Content) {
파일 = 새 파일 (PhysicalPath);
부울 b = file.getParentFile (). isdirectory ();
if (! b) {
file tem = 새 파일 (file.getParent ());
// tem.getParentFile (). setWritable (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 ();
새로운 runtimeexception (예)를 던지십시오.
}마지막으로{
노력하다 {
foutput.flush ();
foutput.close ();
} catch (ioException ex) {
ex.printstacktrace ();
새로운 runtimeexception (예)를 던지십시오.
}
}
//log.info ( "文件保存成功 :"+ physicalPath);
}
/**
* 복사 文件
* @param srcfile 문자열
* @param desfile 문자열
* @return 부울
*/
public boolean copytofile (String srcfile, String 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 = 새 파일 아웃 putStream (desfile, false);
}
CATCH (FilenotFoundException EX) {
ex.printstacktrace ();
}
desfile = null;
길이 = (int) scrfile.length ();
바이트 [] b = 새로운 바이트 [길이];
노력하다 {
fis.read (b);
fis.close ();
fos.write (b);
fos.close ();
}
CATC (ioException e) {
e.printstacktrace ();
}
} 또 다른 {
scrfile = null;
거짓을 반환합니다.
}
scrfile = null;
진실을 반환하십시오.
}
/**
* 복사 文件夹
* @Param 소스 세션 문자열
* @param destdir 문자열
* @return 부울
*/
public boolean copydir (String Sourcedir, String destdir) {
파일 소스 파일 = 새 파일 (sourcedir);
문자열 tempsource;
문자열 유혹;
문자열 filename;
file [] files = sourcefile.listfiles ();
for (int i = 0; i <files.length; i ++) {
filename = files [i] .getName ();
tempsource = sourcedir + "/" + filename;
tempdest = destdir + "/" + filename;
if (files [i] .isfile ()) {
CopyTofile (Tempsource, Tempdest);
} 또 다른 {
Copydir (Tempsource, tempdest);
}
}
sourcefile = null;
진실을 반환하십시오.
}
/**
* 删除指定目录及其中的所有内容。 删除指定目录及其中的所有内容。
* @param dir dir
* @return 删除成功时返回 true, 否则返回 false。
*/
Public Boolean deletedirectory (파일 dir) {
file [] entries = dir.listfiles ();
int sz = actries.length;
for (int i = 0; i <sz; i ++) {
if (entries [i] .isdirectory ()) {
if (! deletedirectory (entries [i])) {
거짓을 반환합니다.
}
} 또 다른 {
if (! entries [i] .delete ()) {
거짓을 반환합니다.
}
}
}
if (! dir.delete ()) {
거짓을 반환합니다.
}
진실을 반환하십시오.
}
/**
* 파일이 있습니다
*
* @param sfilename 파일 이름
* @return boolean true- 존재 <br>
* 거짓 - 존재하지 않습니다
*/
공개 정적 부울 checkexist (String sfilename) {
부울 결과 = 거짓;
노력하다 {
파일 f = 새 파일 (sfilename);
// if (f.exists () && f.isfile () && f.canread ()) {
if (f.exists () && f.isfile ()) {
결과 = true;
} 또 다른 {
결과 = 거짓;
}
} catch (예외 e) {
결과 = 거짓;
}
/* 반품 */
반환 결과;
}
/**
* 파일 크기를 얻습니다
*
* @param sfilename 파일 이름
* @return long 파일의 크기 (바이트) 파일이 존재하지 않는 경우 -1
*/
public static long getsize (String 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 파일 nmae
* @return Boolean True -DELETE SUCCESS <br>
* false- 삭제 실패
*/
public static boolean deletefromname (string sfilename) {
부울 브렛 턴 = 참;
노력하다 {
파일 ofile = 새 파일 (sfilename);
//존재하다
if (ofile.exists ()) {
// 파일 삭제
부울 bresult = ofile.delete ();
// 삭제 실패
if (bresult == false) {
Breturn = False;
}
// 존재하지 않습니다
} 또 다른 {
}
} catch (예외 e) {
Breturn = False;
}
//반품
Breturn의 귀환;
}
/**
* 감금제를 제출하십시오
*
* @param stopath unzip 디렉토리 경로
* @param szipfile unzip 파일 이름
*/
@suppresswarnings ( "rawtypes")
public static void releasezip (String stopath, String szipfile) 예외 {
if (null == stopath || ( ""). Equals (stopath.trim ())) {
파일 objzipfile = 새 파일 (szipfile);
stopath = objzipfile.getParent ();
}
zipfile zfile = 새로운 zipfile (szipfile);
열거 Zlist = zfile.entries ();
zipentry ze = null;
바이트 [] buf = 새로운 바이트 [1024];
while (zlist.hasmoreElements ()) {
ze = (zipentry) zlist.nextElement ();
if (ze.isdirectory ()) {
계속하다;
}
OutputStream os =
새로운 BufferedOutputStream (
새 FileOutputStream (getRealFilename (stopath, ze.getName ()));
inputStream은 = new 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 기반 루트 디렉토리
* @param abosfilename 절대 디렉토리 파일 이름
* @return java.io.file return 파일
*/
@suppresswarnings ({ "rawtypes", "unchecked"})
private static 파일 getRealFilEname (String Basedir, String abstileManame)은 예외를 던집니다.
파일 ret = null;
list dirs = new ArrayList ();
StringTokenizer st = new StringTokenizer (absfilename, system.getProperty ( "file.separator"));
while (st.hasmoretokens ()) {
dirs.add (st.nextToken ());
}
ret = 새 파일 (기반);
if (dirs.size ()> 1) {
for (int i = 0; i <dirs.size () -1; i ++) {
ret = 새 파일 (ret, (string) dirs.get (i));
}
}
if (! ret.exists ()) {
ret.mkdirs ();
}
ret = 새 파일 (ret, (string) dirs.get (dirs.size () -1));
Ret Ret;
}
/**
* 카피 파일
*
* @param srcfile 소스 파일
* @Param TargetFile 대상 파일
*/
@suppresswarnings ( "자원")
정적 공개 void CopyFile (String SrcFile, String TargetFile)은 ioException을 던지기
{
fileInputStream reader = new FileInputStream (srcfile);
fileoutputStream writer = new FileOutputStream (TargetFile);
바이트 [] 버퍼 = 새로운 바이트 [4096];
int len;
노력하다
{
reader = new FileInputStream (srcfile);
Writer = 새 FileOutputStream (TargetFile);
while ((len = reader.read (buffer))> 0)
{
Writer.write (Buffer, 0, Len);
}
}
캐치 (ioexception e)
{
e 던지기;
}
마지막으로
{
if (Writer! = null) writer.close ();
if (reader! = null) reader.close ();
}
}
/**
* RenameFile
*
* @param srcfile 소스 파일
* @Param TargetFile 대상 파일
*/
정적 공개 void renamefile (String srcfile, String targetfile)은 ioexception을 던지기
{
노력하다 {
Copyfile (srcfile, targetfile);
deletefromname (srcfile);
} catch (ioexception e) {
e 던지기;
}
}
public static void write (String tivolimsg, String logfilename) {
노력하다{
바이트 [] bmsg = tivolimsg.getBytes ();
fileoutputStream fout = 새 FileOutputStream (logfilename, true);
fout.write (bmsg);
fout.close ();
} catch (ioexception e) {
// 예외를 던집니다
}
}
/**
*이 메소드는 타임 스탬프, 오류 코드 및 메소드 세부 사항으로 메시지를 로그인하는 데 사용됩니다.
* @param errorcd 문자열
* @param className String
* @Param MethodName String
* @param msg 문자열
*/
public static void writeLog (String logfile, String batchid, String ExceptionInfo) {
dateformat df = dateformat.getDateTimeInstance (dateformat.default, dateformat.default, locale.japanese);
Object Args [] = {df.format (new date ()), batchid, exceptioninfo};
문자열 fmtmsg = messageformat.format ( "{0} : {1} : {2}", args);
노력하다 {
파일 logfile = 새 파일 (logfile);
if (! logfile.exists ()) {
logfile.createnewfile ();
}
filewriter fw = 새로운 filewriter (logfile, true);
fw.write (fmtmsg);
fw.write (System.GetProperty ( "line.separator"));
fw.flush ();
fw.close ();
} catch (예외 e) {
}
}
public static string readTextFile (String RealPath)은 예외를 던집니다.
파일 = 새 파일 (realPath);
if (! file.exists ()) {
System.out.println ( "파일이 존재하지 않습니다!");
널 리턴;
}
bufferedReader br = new bufferedReader (new inputStreamReader (new FileInputStream (realPath), "UTF-8");
문자열 temp = "";
문자열 txt = "";
while ((temp = br.readline ())! = null) {
txt+= 온도;
}
br.close ();
반환 txt;
}
}