字节流读数据(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();
    }

}

 

posted @ 2019-08-17 18:03  水果、、  阅读(1171)  评论(0编辑  收藏  举报