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();
}
}
}
如有錯誤,大家見諒。