您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)java中常用的文件操作方法有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
常用的文件的操作方法
public class FileUtility {
/**
* 創(chuàng)建目錄
*
* @param fileDir
* 文件所在目錄
*
* @throws java.lang.Exception
*/
public static void createDir(String filePath){
File fileDir = new File(filePath);
try {
if (!fileDir.exists()) {
fileDir.mkdir();
}
} catch (Exception ex) {
}
}
/**
* @roseuid 46345A88024A
*/
public FileUtility() {
}
/**
* 如果文件存在,則刪除后并重新創(chuàng)建;如果不存在,則創(chuàng)建。
*
* @param filePath -
* 文件路徑
* @param fileName -
* 文件名稱
* @param sb -
* 輸出的內(nèi)容
* @roseuid 4612F3C103B9
*/
public static void createFile(String filePath, String fileName,
StringBuffer sb) {
createDir(filePath);
java.io.File file = new java.io.File(filePath, fileName);
try {
if (file.exists() == true) {
file = new java.io.File(filePath, fileName);
file.delete();
}
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
Writer out = new OutputStreamWriter(fos, "GB2312");
out.write(sb.toString());
out.flush();
out.close();
fos.close();
out = null;
fos = null;
} catch (Exception ex) {
}
}
/**
* 刪除文件
*
* @param filePath -
* 文件路徑
* @param fileName -
* 文件名稱
* @roseuid 4612F3C103B9
*/
public static void deleteFile(String filePath, String fileName)
{
createDir(filePath);
java.io.File file = new java.io.File(filePath, fileName);
try {
if (file.exists()) {
file = new java.io.File(filePath, fileName);
file.delete();
}
file = null;
} catch (Exception ex) {
}
}
/**
* 創(chuàng)建新的文件
* @param filePath
* @param fileName
*/
public static void createOrClearFile(String filePath, String fileName)
{
createDir(filePath);
File fileDS = new File(filePath, fileName);
try {
if (fileDS.exists()) {
fileDS = new File(filePath, fileName);
fileDS.delete();
}
fileDS.createNewFile();
} catch (Exception ex) {
}
}
/**
* 將內(nèi)容添加到文檔中去
* @param filePath
* @param fileName
* @param sb
*/
public static void writeAppendFile(String filePath, String fileName,
StringBuffer sb) {
try {
FileWriter fileWriter = new FileWriter(filePath + File.separator
+ fileName, true);
PrintWriter out = new PrintWriter(fileWriter);
out.print(sb.toString());
out.flush();
fileWriter.flush();
out.close();
fileWriter.close();
out = null;
fileWriter = null;
} catch (Exception ex) {
}
}
/**
* 將指定目錄下的文件進(jìn)行壓縮
*
* @param zipList -
* 文件名稱,該list中的文件名壓縮到壓縮包中
* @param filePath -
* 文件路徑
* @param zipName -
* 壓縮后文件的名稱
* @roseuid 4612F4AE03B1
*/
public static void zip(List zipList, String filePath, String zipName)
{
BufferedInputStream origin = null;
ZipOutputStream out = null;
int BUFFER = 2048;
createDir(filePath);
try {
File zipFile = new File(filePath, zipName);
FileOutputStream dest = new FileOutputStream(zipFile);
byte data[] = new byte[BUFFER];
//針對(duì)壓縮的文件打入標(biāo)志位,當(dāng)解壓縮的時(shí)候判斷是否被損壞,如果被損壞的話則不予解壓縮
out = new ZipOutputStream(new BufferedOutputStream(dest));
// 設(shè)置文件為壓縮方式
out.setMethod(ZipOutputStream.DEFLATED);
int num = zipList.size();
for (int i = 0; i < num; i++) {
FileInputStream fi = new FileInputStream(filePath
+ File.separator + (String) zipList.get(i));
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry((String) zipList.get(i));
out.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
origin.close();
}
out.close();
} catch (Exception e) {
} finally {
origin = null;
out = null;
}
}
/**
* 刪除臨時(shí)文件
*
* @param delList -
* 要?jiǎng)h除的文件的名稱的列表
* @param filePath -
* 刪除文件的路徑
* @roseuid 4612F5380341
*/
public static void delete(List delList, String filePath)
{
try {
for (int i = 0; i < delList.size(); i++) {
String fileName = (String) delList.get(i);
File f = new File(filePath, fileName);
if (f.exists()) {
f.delete();
}
fileName = null;
f = null;
}
} catch (Exception e) {
}
}
/**
* 從zip文件中獲取指定名稱的文件
*
* @param filePath -
* zip所在文件目錄
* @param zipFileName -
* zip文件名稱
* @param fileName -
* 要讀出的文件名稱
* @return BufferedReader
* @roseuid 4612F788032E
*/
public static BufferedReader getZipReader(String filePath,
String zipFileName, String fileName) {
BufferedReader br = null;
try {
ZipFile zf = new ZipFile(filePath + File.separator + zipFileName);
ZipEntry entry = zf.getEntry(fileName);
br = new BufferedReader(new InputStreamReader(zf
.getInputStream(entry)));
} catch (Exception e) {
}
return br;
}
public static Document readXmlFile(File xmlFile) {
Document doc = null;
try {
SAXBuilder saxBuilder = new org.jdom.input.SAXBuilder(false);
doc = saxBuilder.build(xmlFile);
} catch (Exception ex) {
}
return doc;
}
/**
* 保存導(dǎo)出文件
*
* @param saveDir
* String
* @param fileName
* String
* @param doc
* Document
*/
public static void saveXmlFile(String saveDir, String fileName, Document doc) {
createDir(saveDir);
try {
java.io.FileWriter fw = null;
java.io.BufferedWriter bw = null;
File file = new File(saveDir, fileName);
if (file.exists()) {
file.delete();
}
if (file.createNewFile()) {
XMLOutputter xmlOut = new XMLOutputter(" ", true);
xmlOut.setEncoding("GB2312");
fw = new java.io.FileWriter(file);
bw = new java.io.BufferedWriter(fw);
xmlOut.output(doc, bw);
bw.flush();
fw.flush();
bw.close();
fw.close();
bw = null;
fw = null;
}
} catch (Exception ex) {
}
}
public static void createEntryFile() {
try {
// 創(chuàng)建xml文件
Element rootElement = new Element("entry");
Document doc = new Document(rootElement);
FileUtility.saveXmlFile(FilePath, FileName, doc);
} catch (Exception e) {
}
}
public void zip(List tableList, String entryFileName,
String backupFilePath, String backupFileName){
// 1.獲取所有的壓縮文件名
List fileList = new ArrayList();
int num = tableList.size();
TableObject to = null;
for (int i = 0; i < num; i++) {
to = (TableObject) tableList.get(i);
//只有記錄大于0的表才進(jìn)行輸出
if (to.getRecordnum() > 0) {
fileList.add(to.getBackupfile());
}
}
fileList.add(entryFileName);
// 2.將所有文件進(jìn)行壓縮并將臨時(shí)文件刪除
try {
FileUtility.zip(fileList, backupFilePath, backupFileName);
FileUtility.delete(fileList, backupFilePath);
} catch (Exception e) {
}
}
/**
* 檢查路徑是否合法,并拋出異常
* @param path
* @return
*/
public static String checkPath(String path){
if (!path.matches("[^*?" < > | ]{1,}")) {
} else {
File dir = new File(path);
if (!dir.exists()) {
}
return dir.getAbsolutePath() + File.separator;
}
}
}
關(guān)于“java中常用的文件操作方法有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。