Java_19 文件輸入/輸出流

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();
    }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章