复制代码代码如下:
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をインポートします。
Import Java.util.date;
java.util.numerationをインポートします。
java.util.listをインポートします。
java.util.localeをインポートします。
Java.util.StringTokenizerをインポートします。
java.util.zip.zipentryをインポートします。
java.util.zip.zipfileをインポートします。
/**
*
* @author ibm
*
*/
public class fileutil {
public static string dirsplit = "//"; // Linux Windows
/**
*物理ディレクトリ情報へのファイルの蓄積を保存します
*
* @Param PhysicalDir
*物理ディレクトリ
* @param fname
*宛先のファイル名
* @param iStream
*宛先ファイルの入力ストリーム
* @戻る
*/
public static boolean savefilebyphysicaldir(String PhysicalPath、
inputstream iStream){
ブールフラグ= false;
試す {
outputStream os = new fileoutputStream(PhysicalPath);
int readbytes = 0;
バイトバッファー[] = new byte [8192];
while((readbytes = istream.read(buffer、0、8192))!= -1){
os.write(buffer、0、readbytes);
}
os.close();
flag = true;
} catch(filenotfoundexception e){
e.printstacktrace();
} catch(ioException e){
e.printstacktrace();
}
フラグを返します。
}
public static boolean createdirectory(string dir){
ファイルf = newファイル(dir);
if(!f.exists()){
f.mkdirs();
}
trueを返します。
}
public static void saveasfileoutputStream(String PhysicalPath、String Content){
ファイルfile = new file(PhysicalPath);
boolean b = file.getParentFile()。isDirectory();
if(!b){
file tem = new file(file.getParent());
// tem.getParentFile()。setWritable(true);
tem.mkdirs(); //创建目录
}
//log.info(file.getParent()+";"+file.getParentFile()。isDirectory());
fileoutputStream foutput = null;
試す {
foutput = new fileoutputStream(PhysicalPath);
foutput.write(content.getBytes( "utf-8"));
//foutput.write(content.getBytes());
} catch(ioException ex){
ex.printstacktrace();
新しいruntimeexception(ex);
}ついに{
試す {
foutput.flush();
foutput.close();
} catch(ioException ex){
ex.printstacktrace();
新しいruntimeexception(ex);
}
}
//LOG.INFO( "文件保存成功:"+ PhysicalPath);
}
/**
*コピー文件
* @param srcfile文字列
* @Param Desfile String
* @return boolean
*/
public boolean copytofile(string srcfile、string desfile){
ファイルscrfile = new file(srcfile);
if(scrfile.isfile()== true){
int length;
fileinputStream fis = null;
試す {
fis = new FileInputStream(scrfile);
}
catch(filenotfoundexception ex){
ex.printstacktrace();
}
ファイルdesfile = new File(desfile);
fileoutputStream fos = null;
試す {
fos = new fileoutputStream(desfile、false);
}
catch(filenotfoundexception ex){
ex.printstacktrace();
}
Desfile = null;
length =(int)scrfile.length();
byte [] b = new byte [length];
試す {
fis.read(b);
fis.close();
fos.write(b);
fos.close();
}
catch(ioexceptione){
e.printstacktrace();
}
} それ以外 {
scrfile = null;
falseを返します。
}
scrfile = null;
trueを返します。
}
/**
*コピー文件夹
* @Param Sourcedir String
* @param Destdir文字列
* @return boolean
*/
public boolean copyDir(String Sourcedir、String Destdir){
ファイルsourcefile = new file(sourcedir);
string tempsource;
string tempdest;
文字列ファイル名;
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;
trueを返します。
}
/**
*删除指定目录及其中的所有内容。
* @param dir要删除的目录
* @return
*/
public boolean deletedirectory(file dir){
file [] entries = dir.listfiles();
int sz = entries.length;
for(int i = 0; i <sz; i ++){
if(entries [i] .isdirectory()){
if(!deletedirectory(entries [i])){
falseを返します。
}
} それ以外 {
if(!entries [i] .delete()){
falseを返します。
}
}
}
if(!dir.delete()){
falseを返します。
}
trueを返します。
}
/**
*ファイルが存在しますチェック
*
* @param sfileNameファイル名
* @return boolean true-存在<br>
* false-存在しません
*/
public static boolean checkexist(string sfilename){
boolean result = false;
試す {
ファイルf = newファイル(sfileName);
// if(f.exists()&& f.isfile()&& f.canread()){
if(f.exists()&& f.isfile()){
result = true;
} それ以外 {
result = false;
}
} catch(例外e){
result = false;
}
/* 戻る */
返品結果;
}
/**
*ファイルサイズを取得します
*
* @param sfileNameファイル名
* @return long file's size(byte)ファイルが存在しない場合-1
*/
public static long getsize(string sfilename){
long lsize = 0;
試す {
ファイルf = newファイル(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-成功を削除<br>
* false-削除障害
*/
public static boolean deletefromname(string sfilename){
Boolean Breturn = true;
試す {
file ofile = new file(sfileName);
//存在する
if(ofile.exists()){
//ファイルを削除します
boolean bresult = ofile.delete();
//失敗を削除します
if(bresult == false){
breturn = false;
}
//存在しません
} それ以外 {
}
} catch(例外e){
breturn = false;
}
//戻る
Breturnを返します。
}
/**
*ファイルunzip
*
* @param Stopath Unzipディレクトリパス
* @param szipfile unzipファイル名
*/
@suppresswarnings( "rawTypes")
public static void releasezip(String Stopath、String Szipfile)スロー例外{
if(null == stopath ||( "")。equals(stopath.trim())){
ファイルobjzipfile = new file(szipfile);
stopath = objzipfile.getParent();
}
zipfile zfile = new zipfile(szipfile);
列挙zlist = zfile.entries();
zipentry ze = null;
byte [] buf = new byte [1024];
while(zlist.hasMoreElements()){
ze =(zipentry)zlist.nextelement();
if(ze.isdirectory()){
続く;
}
outputStream os =
新しいBufferedOutputStream(
new fileoutputStream(getRealFileName(Stopath、Ze.getName())));
inputstream is = 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 Beasedirルートディレクトリ
* @param absfileName絶対ディレクトリファイル名
* @return java.io.file returnファイル
*/
@suppresswarnings({"rawTypes"、 "unchecked"})
private staticファイルgetRealFileName(String Basedir、String absfileName)スロー例外{
ファイルret = null;
list dirs = new ArrayList();
stringtokenizer st = new StringTokenizer(absfileName、System.getProperty( "file.separator"));
while(St.HasmoreTokens()){
dirs.add(St.NextToken());
}
ret = new file(beadir);
if(dirs.size()> 1){
for(int i = 0; i <dirs.size() - 1; i ++){
ret = new file(ret、(string)dirs.get(i));
}
}
if(!ret.exists()){
ret.mkdirs();
}
ret = new file(ret、(string)dirs.get(dirs.size() - 1));
Retを返します。
}
/**
* CopyFile
*
* @param srcfileソースファイル
* @Param TargetFileターゲットファイル
*/
@suppresswarnings( "リソース")
静的パブリックボイドコピーファイル(string srcfile、string targetfile)はioexceptionをスローします
{
fileInputStream reader = new FileInputStream(srcfile);
fileoutputStream writer = new fileoutputStream(targetFile);
byte [] buffer = new byte [4096];
int len;
試す
{
reader = new FileInputStream(srcfile);
writer = new fileoutputStream(targetFile);
while((len = reader.read(buffer))> 0)
{
writer.write(buffer、0、len);
}
}
catch(ioexceptione)
{
eを投げる;
}
ついに
{
if(writer!= null)writer.close();
if(reader!= null)reader.close();
}
}
/**
* renamefile
*
* @param srcfileソースファイル
* @Param TargetFileターゲットファイル
*/
静的public void renamefile(string srcfile、string targetfile)throws ioexception
{
試す {
copyfile(srcfile、targetfile);
deletefromname(srcfile);
} catch(ioException e){
eを投げる;
}
}
public static void write(string tivolimsg、string logfilename){
試す{
byte [] bmsg = tivolimsg.getBytes();
fileoutputStream fout = new fileoutputStream(logFileName、true);
fout.write(bmsg);
fout.close();
} catch(ioException e){
//例外をスローします
}
}
/**
*このメソッドは、タイムスタンプ、エラーコード、およびメソッドの詳細でメッセージをログに記録するために使用されます
* @param errorcd文字列
* @param className文字列
* @param methodname文字列
* @param msg文字列
*/
public static void writelog(string logfile、string batchid、string exceptioninfo){
dateformat df = dateformat.getDateTimeInstance(dateFormat.default、dateformat.default、locale.japanese);
オブジェクトargs [] = {df.format(new date())、batchid、exceptioninfo};
string fmtmsg = messageformat.format( "{0}:{1}:{2}"、args);
試す {
ファイルlogfile = new File(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){
}
}
public static string readtextfile(string realpath)スロー例外{
ファイルfile = new File(RealPath);
if(!file.exists()){
system.out.println( "ファイルは存在しません!");
nullを返します。
}
BufferedReader BR = new BufferedReader(new inputStreamReader(new FileInputStream(RealPath)、 "UTF-8"));
string temp = "";
文字列txt = "";
while((temp = br.readline())!= null){
txt+= temp;
}
br.close();
txtを返します。
}
}