标签:public ace 提高效率 个人 des efi 函数 ade str
最近工作中遇到的问题涉及到很多的文件操作,包括文件的读写,在当前目录,任意目录的文件创建,目录创建。涉及到文件的创建要求当父级目录不存在时创建父级目录。
有两个函数,mkdir(),mkdirs();经过测试,发现mkdir()只适用于创建父级目录存在的情况,当父级目录不存在的时候,无法创建文件夹。而mkdirs()当父级目录不存在的时候依次创建父级目录再创建文件夹。代码如下;
public boolean CreatDir(String dirpath){
File dir = new File(dirpath);
if (dir.exists()) {
System.out.println("创建目录" + dirpath + "失败,目标目录已经存在");
return false;
}
//添加分隔符,也就是斜杠
if (!dirpath.endsWith(File.separator)) {
dirpath = dirpath + File.separator;
}
//创建目录
if (dir.mkdirs()) {
System.out.println("创建目录" + dirpath + "成功!");
return true;
} else {
System.out.println("创建目录" + dirpath + "失败!");
return false;
}
}
由于提供的dirpath很多情况下不知道父目录是否存在,个人比较喜欢使用mkdirs()来创文件夹。
2. 创建单个文件
创建文件时先判断父级目录是否存在,不存在则创建父级目录再创建文件,代码如下;
public boolean CreateFile(String filepath){
File file = new File(filepath);
if(file.exists()){
System.out.println("创建文件"+filepath+"失败"+", 文件已存在");
return false;
}
if(filepath.endsWith(File.separator)){
System.out.println("创建文件失败"+",创建目标是目录!");
return false;
}
//检查父级目录是否存在,不存在就创建
if(!file.getParentFile().exists()){
System.out.println("目标文件的父级目录不存在,准备创建父级目录");
if(!file.getParentFile().mkdirs()){
return false;
}
}
//创建文件
try{
if(file.createNewFile()){
System.out.println("创建文件"+filepath+"成功");
return true;
} else {
System.out.println("创建文件"+filepath+"失败");
return false;
}
}catch (IOException e){
e.printStackTrace();
System.out.println("创建文件"+filepath+"失败"+e.getMessage());
return false;
}
}
3.读文件
public String ReadFileBychars(String filename){
File file = new File(filename);
String content = "";
//判断文件是否存在
if(!file.exists()||!file.isFile()){
return "";
}
FileReader fir = null;
BufferedReader bir = null;
try{
fir = new FileReader(file);
bir = new BufferedReader(fir);
String temp = "";
while((temp=bir.readLine())!=null){
content = content + temp;
}
} catch (IOException e){
e.printStackTrace();
}finally {
try{
bir.close();
fir.close();
}catch (IOException e){
e.printStackTrace();
}
}
return content;
}
public String ReadFileByBytes(String filename){
File file = new File(filename);
String content = "";
if(!file.exists()||!file.isFile()){
return new String();
}
FileInputStream fis = null;
try{
fis= new FileInputStream(file);
int size = fis.available();
for(int i=0; i<size; i++){
content = content + (char)fis.read();
}
}catch (IOException e){
e.printStackTrace();
}finally {
try {
fis.close();
}catch (IOException e){
e.printStackTrace();
}
}
return content;
}
4.写文件
public boolean writeFileByFileWriter(String filePath, String content) {
File file = new File(filePath);
synchronized (file) {
FileWriter fw = null;
try {
fw = new FileWriter(filePath);
fw.write(content);
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
try{
fw.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
标签:public ace 提高效率 个人 des efi 函数 ade str
原文地址:http://www.cnblogs.com/zdsmile/p/6192937.html