java I/O流初步認識使用

早先,在學習java中的io流時,因爲沒重視,換亂的看了視頻就過了,導致現在做項目時看到文件等操作就頭暈,現在有時間了,就重新的學了一遍java的IO流,加深印象吧。
首先說說IO流的概念:
流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱爲流,流的本質是數據傳輸,根據數據傳輸特性將流抽象爲各種類,方便更直觀的進行數據操作。

IO流的分類:
根據數據的流向可分爲:輸入流,輸出流
根據處理的數據它的類型可分爲:字符流與字節流
字符流與字節流中,優先選用字節流。首先因爲硬盤上的所有文件都是以字節的形式進行傳輸或者保存的,包括圖片等內容。但是字符只是在內存中才會形成的,所以在開發中,字節流使用廣泛。
我經常搞混亂,不知道什麼時候使用inputstream,什麼時候使用outputstream。
接下來的一句話,記住的話就不用迷茫了:對輸入流只能進行讀操作,對輸出流只能進行寫操作,程序中需要根據待傳輸數據的不同特性而使用不同的流。

現在就簡單的使用一下IO流來加深印象吧

//使用字節流向D盤的hello.txt文件寫數據:

public static void main(String[] args) {
//File.separator用來跨平臺的書寫路徑
        String fileName="D:"+File.separator+"hello.txt";
        File file=new File(fileName);
        try {
        //true則追加內容,false爲覆蓋內容
            OutputStream out=new FileOutputStream(file, true);
            String content="woyaojiayou";
            byte[]bb=content.getBytes();
            for(int i=0;i<bb.length;i++){
                out.write(bb[i]);
            }
            out.close();

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

//使用字節流讀取文件內容(沒做判斷,因此D盤中先要有hello.txt文件)

public static void main(String[] args) {
        String fileName="D:"+File.separator+"hello.txt";
        File file=new File(fileName);
        try {
            InputStream is=new FileInputStream(file);
            byte[]bb=new byte[(int) file.length()];
            for(int i=0;i<bb.length;i++){
                bb[i]=(byte) is.read();
            }
            is.close();
            System.out.println(new String(bb));
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

在創建文件時,我們經常會見到File的mkdir()和mkdirs()方法,那麼這兩個方法又有什麼不同的呢?
寫個示例,來更好的瞭解和記錄這兩個方法的區別吧

//String path="D:"+File.separator+"main.txt";
File file=new File("D:\\demo\\main");
//兩個方法都返回boolean值,當創建成功則返回true,創建失敗則返回false
/*mkdir()表示創建最內級的目錄,就像上面的文件路徑D:\\demo\\main, 它只創建最裏面的那個main文件目錄,如果demo本身不存在,那麼它將創建失敗,如果demo存在,它則創建成功
*/
boolean isCreate = file.mkdir(); //如果demo不存在則返回false

 boolean bFile1 = file.mkdir();  
        System.out.println("bFile1:"+bFile1);

        /*
         * mkdirs() 此方法創建所有目錄結構,如目錄D:\\demo\\main,它既創建了demo也創建main
         * */
        boolean bFile2 = file.mkdirs();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章