package systemManager;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
/**
*
* @author chencong 文件管理系統
*/
public class FileManager {
/**
* 在指定文件路徑下創建文件夾或者是在項目根目錄下創建文件夾
*
* @param dirName
* @return 返回創建文件夾的路徑
*/
public String createDir(String dirName) {
if (dirName == null) {
return null;
}
File file = new File(dirName);
if (file.exists()) {
file.delete();
}
file.mkdir();
return file.getAbsolutePath();
}
/**
* 在指定位置創建文件 返回文件的相對路徑
*
* @param fileName
* @return 返回文件的絕對路徑
*/
public String createFile(String fileName) {
if (fileName == null) {
return null;
}
File file = new File(fileName);
if (file.exists()) {
file.delete();
}
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
return file.getAbsolutePath();
}
/**
* 向指定文件中寫入內容,如果該文件不存在,則在指定位置創建該文件再寫入
*
* @param fileName
* 指定文件的路徑名稱
* @param value
* 將要向該文件中寫入的內容
* @throws Exception
* 拋出異常
*/
public void setSomeByFile(String fileName, String value) throws Exception {
if (fileName == null || value == null) {
return;
}
File file = new File(fileName);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream outputStream = new FileOutputStream(file, true);
byte[] bytes = value.getBytes("utf-8");
for (byte b : bytes) {
outputStream.write(b);
}
outputStream.close();
}
/**
* 返回指定位置文件的內容,如果該文件不存在或者該文件爲文件夾直接返回null
*
* @param fileName
* 將要獲得內容的文件路徑
* @return 返回null 或者 是文件的內容
*/
public String getSomeByFile(String fileName) {
if (fileName == null) {
return null;
}
File file = new File(fileName);
// 如果指定路徑文件不存在 直接返回空 ,傳入路徑爲目錄則直接返回空
if (!file.exists() || file.isDirectory()) {
return null;
}
// 否則獲取該文件中的內容
StringBuffer sBuffer = new StringBuffer();
try {
String msg = null;
// 創建字符流
FileReader fileReader = new FileReader(file);
// 創建字符緩衝流
BufferedReader bufferedReader = new BufferedReader(fileReader);
while ((msg = bufferedReader.readLine()) != null) {
sBuffer.append(msg);
}
bufferedReader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
return sBuffer.toString();
}
/**
* 將源文件內容複製到目的地址文件當中。
* <P>
* 如果源文件名爲null 或者目的地址爲null 則統一放回null
* <p>
* 如果原地址不爲空且爲文件則將其內容返回並copy進入目的地址
* <p>
* 如果目的地址文件不存在且目的地址正確爲文件名,則創建一個文件
*
* @param sourceName
* 源文件名
* @param destName
* 目的文件名
* @return 返回源文件當中的內容
* @throws Exception
*/
public String copyFileByName(String sourceName, String destName) throws Exception {
if (sourceName == null || destName == null) {
return null;
}
File sourceFile = new File(sourceName);
// 獲得源文件當中的內容
String sourceMsg = null;
if (!sourceFile.exists() || sourceFile.isDirectory()) {
return null;
}
// 或得到源文件當中的內容 並且將其複製進目的文件當中
sourceMsg = getSomeByFile(sourceFile.getAbsolutePath());
File destFile = new File(destName);
// 如果這個目的地址不存在 則創建這個目的地址
if (!destFile.exists()) {
destFile.createNewFile();
}
if (destFile.isDirectory()) {
return null;
}
// 向目的地址當中寫入內容
FileOutputStream outputStream = new FileOutputStream(destFile);
byte[] bytes = sourceMsg.getBytes("utf-8");
for (byte b : bytes) {
outputStream.write(b);
}
outputStream.close();
return sourceMsg;
}
/**
* 將指定地方的圖片複製到目的地址,同上操作判斷是否爲空,返回boolean
* <p>
* 根據操作是否成功返回boolean
*
* @param sourceName
* 原地址路徑
* @param descName
* 目的地址路徑
* @return 返回操作是否成功
*/
public boolean copyImageByName(String sourceName, String descName) {
if (sourceName == null || descName == null) {
return false;
}
File sourceFile = new File(sourceName);
if (!sourceFile.exists() || sourceFile.isDirectory()) {
return false;
}
File descFile = new File(descName);
if (descFile.exists() || descFile.isDirectory()) {
return false;
}
try {
FileInputStream inputStream = new FileInputStream(sourceFile);
FileOutputStream outputStream = new FileOutputStream(descFile);
byte[] buffer = new byte[100];
int num = inputStream.read(buffer);
while (num > 0) {
outputStream.write(buffer, 0, num);
num = inputStream.read(buffer);
}
inputStream.close();
outputStream.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
}
Java學習筆記(三)——文件讀寫操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.