字節流讀數據(InputStream)


 

 

 

//讀取一個字節並以整數的形式返回(0-255)

//如果返回-1已到輸入流的末尾

int read() throws IOException

 

//讀取一系列字節並存儲到一個數組buffer,//返回實際讀取的字節數,如果讀取前已到輸入流的末尾返回-1

int read(byte [] buffer) throws IOException

 

//讀取length個字節

//並存儲到一個字節數組buffer,從length位置開始

//返回實際讀取的字節數,如果讀取前已到輸入流的末尾返回-1

int read(byte [ ] buffer,int offset,int length)

throws IOException

 

//關閉流釋放內存資源

void close() throws IOException

// 跳過 n個字節不讀,返回實際跳過的字節數

long skip(long n) throws IOException

 

 

 

   
package com.io.liushuaishuai;

import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamDemo01 {
    public static void main(String[] args) throws IOException {
//        FileInputStream​(String name)
// 通過打開與實際文件的連接來創建一個 FileInputStream ,
// 該文件由文件系統中的路徑名 name命名。

        FileInputStream fis = new FileInputStream("myIOstream\\fos.txt");


//        read​() 從該輸入流讀取一個字節的數據。

        /*//第一次讀取數據
        int i = fis.read();
        //System.out.println(i);
        System.out.println((char) i);

        //第二次讀取數據
        int k = fis.read();
        //System.out.println(i);
        System.out.println((char) k);
        */

        /*
        //到達文件末尾,返回值為-1;
        int i = fis.read();
        while (i != -1) {
            System.out.print((char)i);
            i = fis.read();
        }
        */
        //優化上面的程序
        int i;
        while ((i = fis.read()) != -1) {
            System.out.print((char) i);
        }


        fis.close();
    }
}

 

不需要人為加換行符

=============================================================================================================================================

字節流復制文本文件

package com.io.liushuaishuai;

import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamDemo02 {
    public static void main(String[] args) throws IOException {
        //創建字節輸入流對象
        FileInputStream fis = new FileInputStream("myIOstream\\fos.txt");
        /*
        byte[] bys  = new byte[5];
        //第一次讀取數據
        int i = fis.read(bys);
        System.out.println(new String(bys,0,i));

        //第二次讀取數據
        i = fis.read(bys);
        System.out.println(new String(bys,0,i));

        i = fis.read(bys);
        System.out.println(new String(bys,0,i));
        */
        byte[] bys = new byte[1024];
        int len;
       while ((len =fis.read(bys)) != -1 ) {
           System.out.println(new String(bys,0,len));//
String​(byte[] bytes, int offset, int length)
通過使用平台的默認字符集解碼指定的字節子陣列來構造新的 String
       }






        //釋放資源
        fis.close();
    }
}

 字節流復制圖片

 

 

package com.io.liushuaishuai;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyjpgDemo {
    public static void main(String[] args) throws IOException {
        //根據數據源創建字節輸入流對象
        FileInputStream fis = new FileInputStream("C:\\壁紙\\index.jpg");

        //創建字節輸出流對象

        FileOutputStream fos = new FileOutputStream("myIOstream\\index.jpg");

        //讀取數據
        byte[] bys = new byte[1024];
        int len;
        while ((len = fis.read(bys))!= -1) {
            fos.write(bys,0,len);
        }
        fos.close();
        fis.close();
    }

}

 


免責聲明!

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



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