Java I/O流詳解與應用


注:學習之前,需要自己思考,不要盲目的去看!!!!!不然沒有任何意義

I/O流(一)

 

1.定義:實現設備之間的傳輸

2.作用:實現數據的讀入和寫出

3.分類:根據操作分為:輸入流和輸出流

              根據類型分為:字節流和字符流

 字節流:可以操作任何數據的傳入和傳出,因此傳輸的文件可以是:音頻,視頻,圖片,文本

 字符流:只能傳輸文本類型的數據(人可以認識的字體),因此傳輸的文件只可以是:文本,但其有其存在的價值是:在字節流的基礎上融入了編碼的操作

字節流的父類(抽象的abstract):InputStream 字節輸入流(讀)

                                                       OutputStream 字節輸出流(寫)

字符流的父類(抽象的abstract):Reader 字符輸入流

                                                        Writer   字符輸出流

 字符流的讀代碼:

//1.創建字符輸入流的對象並關聯文件 (文件必須有)
FileReader fileReader = new FileReader("某個文件的路徑");
//2.1讀的第一種方式:一個一個讀
 int num = 0;
 num=file.read();//返回值是int型的字符,如果值為-1表示已經讀完了
 System.out.println((char)num);//轉換成ASCII碼值
//        while ((num = file.read()) != -1) {
//            System.out.print((char) num);
//        }
//2.2讀的第二種方式:一組一組讀
char[] arr = new char[2];
int num1 = 0;
while ((num1 = file.read(arr)) != -1) {
System.out.print(new String(arr, 0, num1));
        }
//3.一定要關閉流
fileReader.close();

字符流的寫代碼

// 向文本文件寫入數據

        // 1.創建FileWrite類型的對象
        // 默認路徑當前的工程
        // 如果當前文件在指定的目錄下存在,不會在創建新的,直接使用,並將文件上的內容覆蓋
        //如果不存在,創建一個新的
        //必須保證文件的路徑是存在的,否則包異常
        FileWriter fileWriter = new FileWriter("temp.txt");
        //當執行writer方法的時候,數據被臨時放入了流對象的內部數組中,這是一個字節數組,內部會去查編碼表,這時通過flush方法刷新,才能寫入磁盤
        fileWriter.write("haha");//2.寫入
        
        //3.刷新
        //fileWriter.flush();
        //4.關閉
        //在close內部默認已經實現了flush的功能
        fileWriter.close();
        
        //流關閉之后不能再寫數據
        // fileWriter.write("go");異常

 字節流讀代碼:

public class Test {

    public static void main(String[] args) throws IOException {
        FileInputStream inputStreamReader = new FileInputStream("D:\\Downloads\\workSpaceCJY\\WorkDemoIO\\c.txt");//隨便哪個目錄
        int num = 0 ;
        byte[]arr= new byte[11];
        while((num = inputStreamReader.read(arr))!=-1) {
            System.out.println(new String(arr,0,num));
        }
    
    }

}

字節流讀寫結合:

public static void main(String[] args) throws IOException {
        FileInputStream inputStreamReader = new FileInputStream("D:\\Downloads\\workSpaceCJY\\WorkDemoIO\\c.txt");
        FileOutputStream fileOutputStream = new FileOutputStream("d.txt");
        int num = 0;
        byte[] arr = new byte[11];
        while ((num = inputStreamReader.read(arr)) != -1) {
            System.out.println(new String(arr, 0, num));
            fileOutputStream.write(arr);
        }
        inputStreamReader.close();
        fileOutputStream.close();
        
        
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM