Java基礎IO類之字節輸入輸出流

1、IO流概述java

一、IO流:輸入輸出流(Input/Output)數組

  流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象,即數據在設備間的傳輸流,app

流的本質是數據傳輸,根據數據傳輸特性將流抽象爲各類類,方便更直觀的進行數據操做ui

大概來講:spa

輸入流:把數據從文件讀到(輸入)程序中code

輸出流:從程序當中把一個數據(輸出)寫入文件中對象

二、流的分類blog

  根據處理數據類型的不一樣分爲:字符流和字節流字符串

  根據數據流向不一樣分爲:輸入流和輸出流get

(1)字節流

a.字節輸出流

OutputStream類的定義:

public abstract class OutputStream extends Object implements Closeable,Flushable

 

  此抽象類是表示輸出字節流的全部類的超類,輸出流接受輸出字節並將這些字節發動到inputStream類的某個接受器

b.字節輸入流

InputStream類的定義:

public abstract class InputStream implements Closeable

 

  這個抽象類是全部基於字節的輸入流的超類,抽象了Java的字節輸入模型。在這個類中定義了一些基本的方法。

  

FileinputStream 是它的子類 從文件系統中的某個文件中得到輸入字節

舉例:

 

package IODemo;

import java.io.*;
/**
 *   字節輸出輸入流
 * 輸出流:超類OutputStream,對文件輸出流的操做的子類是FileOutputStream
 * 輸入流:超類InputStream,對文件輸入流的操做子類是FileInputStream
 */
public class ByteStreaDemo {

    private  static void in(){
        //一、肯定目標文件
        File file = new File("D:\\test\\test.txt");

        try {
            //二、構建一個輸入流對象
            InputStream in = new FileInputStream(file);

            // 讀取的數據是一個字節一個字節的,因此要用一個字節數組來收
            // 至關於一個容器來裝文件裏面的東西 1024大小表示容器能裝1024個字節 1024字節=1kb
            byte[] bytes = new byte[1024];
            int len = -1; //表示已經讀取了多少個字節,若是是 -1,表示已經讀取到文件的末尾
            //字符串拼接
            StringBuilder buf = new StringBuilder();
            //把數據讀入到數組中,而且返回讀取的字節數,當不等於-1時表示已經讀取到了數據,等於-1時表示已經讀完
            while ((len =  in.read(bytes)) !=-1){
               buf.append(new String(bytes)); // 根據讀取到的字節數組,轉換爲字符串內容,而且進行拼接,添加到StringBuilder中
            }
            System.out.println(buf);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

    private static void out(){
        //一、肯定目標文件
        File file = new File("D:\\test\\test.txt");

        try {
            // 二、構建一個文件輸出流的對象
            OutputStream out = new FileOutputStream(file,true);  // 若是加上true的話表示的是在原文件內容上追加內容,若是不加ture默認是重寫
            // 三、內容
            String info = "你們好,我是落魄書生!\r\n"; //window  下 \r\n 表示換行
            //四、out對象寫入文件中 要字節類型 字符串轉字節類型
            out.write(info.getBytes());
            System.out.println("寫入成功!");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {

        out();
        in();
    }
}
相關文章
相關標籤/搜索