java字节输入流【FileInputSream】

FileInputSream==》输入流一般使用这个子类
【父类】InputStream【字节输入流】类常用方法==》抽象类
int read();
把数据源中的东西一个字节一个字节的读出来,返回值int
如果到了输入流的末尾返回一个-1

int read(byte[] b);
从输入流读取若干字节,把这些字节保存到数组中去,返回的是读取到的字节数
如果到了输入流的末尾返回一个-1

int read(byte[] b,int off,int len)
从输入流读取若干字节,把这些字节保存到数组中去,返回的是读取到的字节数
如果到了输入流的末尾返回一个-1
off指的是开始位置保存数据开始的下标,len指读取到的字节数

void colse();
就是关闭流;

int available();
可以从输入流中读取的字节数目

子类FileInputStream常用的构造方法
FileInputStream(File file)
FileInputStream(String name)
【输入流,就是把文本文档中的内容读到程序中】

使用相关步骤:
引入相关类
+
构造文件输入流
FileInputSream对象
+
读取文本文件的数据
+
关闭文件流对象

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

//读取文件中的内容
public class Demo8 {
    private static void show(){
        FileInputStream file = null;
        try {
            //输入流FileInputSream
           file=new FileInputStream("D:\\javatest//1.txt");
            System.out.println("可以读取到的字节数"+file.available());
            //借助输入流的方法去读文件
//            int data;
//            while ((data=file.read())!=-1){
//                //因为文本里面是字符,所以要加上char进行强转,否则只会输出一串数字
//                System.out.print((char) data);
//            }
            byte[] bytes=new byte[1024];
            int data;
            while ((data=file.read(bytes))!=-1){
                //为什么?i不是小于bytes.length而是小于data,
                //因为用数组会打印零
                for (int i = 0; i <data ; i++) {
                    System.out.print(bytes[i]);
                } 
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                file.close();    //关流
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        show();
    }
}

 

posted on 2019-05-25 18:18  汪汪爱学习  阅读(132)  评论(0)    收藏  举报

导航