File类的各种操作

java.io.File这个类不管是单纯的java编程还是android编程,用到的几率都是十分的大的。所以掌握其基本知识是十分重要的。这里就将其出现的各种操作列举出来,如有不全或者错误的地方还请谅解。

首先对这个File类先有一个认识:

public class File

  extends Object

    implements Serializable , Comparable<File>

构造方法摘要:

//根据parent抽象路径名和child路径字符串创建一个新的File实例
File(File parent , String child)

//通过给定的路径字符串转换成抽象路径名来创建一个新的File实例
File(String pathname)

//根据parent路径字符串和child路径字符串创建一个新的File实例
File(String parent , String child)

//通过给定的File:URI转换成抽象路径名来创建一个新的File实例
File(URI uri)

下面列出几个常规用法:

/**
* 新建目录
*
*
@param path
* 目录路径名 比如:d:/myfile
*/
void createnewFolder(String path) {
try {
// 实例一个File对象
File myFile = new File(path);
// 判断是否存在,不存在则创建
if (!myFile.exists()) {
// 创建新的目录|介绍与mkdirs()的区别,mkdirs()还会创建必须但不存在的父目录
myFile.mkdir();
}
} catch (Exception e) {
// 创建失败,捕捉异常
}
}

/**
* 新建文件
*
*
@param path
* 文件路径名 比如:d:/myfile.txt
*
@param content
* 文件内容
*/
void createnewFile(String path, String content) {
try {
File myFile = new File(path);
if (!myFile.exists()) {
// 创建一个空的文件
myFile.createNewFile();
}
FileWriter fw = new FileWriter(myFile);
fw.write(content);
if (fw != null)
fw.close();
} catch (IOException e) {

}
}

/**
* 读取文件的内容
*
*
@param path
* 路径名
*
@param filename
* 文件名
*/
String readFile(String path, String filename) {
try {
File myFile = new File(path + File.separator + filename);
// 这里顺便提下FileReader与BufferedReader:FileReader是针对文件操作的,extends
// Reader,而BufferedReader是将IO流转化成buffer以便高速处理,针对reader
BufferedReader br = new BufferedReader(new FileReader(myFile));
StringBuffer sb = new StringBuffer();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
br.close();
return sb.toString();
} catch (Exception e) {
return null;
}
}

/**
* 删除文件夹里的所有内容
*
*
@param path
* 文件夹路径
*/
void delAllFiles(String path) {
try {
File myFile = new File(path);
// 不存在,返回
if (!myFile.exists()) {
return;
}
// 不是目录,返回
if (!myFile.isDirectory()) {
return;
}
File[] files = myFile.listFiles();
for (File f : files) {
f.delete(); // 单个文件的删除
}
// myFile.delete();//空 文件夹的删除
} catch (Exception e) {
// TODO: handle exception
}
}

/**
* 复制单个文件
*
@param oldParh 被复制文件的路径
*
@param newPath 复制后的路径
*/
void copyFile(String oldParh, String newPath) {
File myFile = new File(oldParh);
if (!myFile.exists()) {
return;
}
int count = 0;
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(oldParh);
os = new FileOutputStream(newPath);
byte[] buffer = new byte[1024];
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(os != null && is != null)
try {
os.close();
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

如有错误,大家见谅。



 

posted @ 2012-01-06 11:47  HuaDeFei  阅读(2087)  评论(6编辑  收藏  举报