1.FileInoutStream與FileOutputStream類
FileInputStream類的常用構造方法:
FileInputStream(String name):使用給定的文件名name創建一個FileInputStream對象
FileInputStrean(File file):使用File對象創建FileInputStream對象
FileOutputStream類有與FileInputStream類相同參數的構造方法,創建一個FileOutputStream對象時,可以指定不存在的文件名,但是此文件不能是一個已被其他程序打開的文件
雖然java語言在程序結束時自動關閉所有打開的流,但是當使用完畢流後,顯式的關閉任何打開的流是一個好習慣,一個被打來的流有可能會用盡系統資源,這取決於平臺和實現,如果沒有將打開的流關閉,當另一個程序打開另一個流時,這些資源可能會得不到。
2.FileReader類和FileWriter類
使用FileOutputStream類向文件中寫入數據與使用FileInpetStream類從文件中將內容讀出來,存在不足:這兩個類只提供了對字節或者字節數組的讀取方法,由於漢字在文件中佔用兩個字節,如果使用字節流,讀取可能會出現亂碼現象,此時選擇字符流FileReader或者FileWriter類即可
package Demo;
import java.awt.Container;
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class DeleteFile {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(400,300);
frame.setLocationRelativeTo(frame);
Container container = frame.getContentPane();
container.setLayout(null);
JTextArea textArea = new JTextArea();
textArea.setBounds(100, 200, 200, 70);
container.add(textArea);
File root = new File("e:/KuGou");
deleteFile(root, textArea);
frame.setVisible(true);
}
private static void deleteFile(File root,JTextArea textArea){
if(root.isFile()){
root.delete();
textArea.append(root.getAbsolutePath()+"\n\r");
}else{
File files[] = root.listFiles();
for(File file : files){
if(file.isFile()){
file.delete();
textArea.append(file.getAbsolutePath()+"\n\r");
}else{
deleteFile(file, textArea);
}
}
root.delete();
}
}
}