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;
}
}
}