java输入输出流:FileInputStream

字节输入流:InputStream
字节输出流:InputStream
输入流:从输入设备中读取数据
输出流:将数据写入到输出设备中

在这里插入图片描述
FileInputStream

  • 从文件系统中的某个文件中获得输入字节
  • 用于读取诸如图像数据之类的原始字节流

字节流的用途:用于读取图像数据等二进制数据
从文档中读取字符串一般用字符流来完成。

下面是几个读数据的方法,如果返回值为-1,则表示已经达到文件末尾!

public int read()   //从输入流中读取一个数据字节
public int read(byte[] b)   //从输入流中将最多b.length个字节的数据读入一个byte数组中
public int read(byte[] b,int off,int len)   //从输入流中将最多len个字节的数据读入byte数组中
public void close()   //关闭此文件输入流并释放与此流有关的所有系统资源

在score.txt中写入“Hello, Java!”,使用read()读取score.txt中的内容。

public static void main(String[] args) { 
    //创建一个FileInputStream对象
    try {
        FileInputStream fis = new FileInputStream("java_stream\\score.txt");
        //方式一
        // int n = fis.read();
        // while(n != -1){    //当n为-1时,表示已经达到文件末尾
        //     System.out.print((char)n);
        //     n = fis.read();
        // }
        //方式二
        int n = 0;
        while((n = fis.read()) != -1){
            System.out.print((char)n);
        }
        fis.close();   //操作完成,关闭文件
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

输出:

Hello, Java!

使用read(byte[] b)读取score.txt中的内容:

public static void main(String[] args) { 
    //创建一个FileInputStream对象
    try {
        FileInputStream fis = new FileInputStream("java_stream\\score.txt");
        //read(byte[] b)方法
        byte[] b = new byte[100];
        fis.read(b);
        System.out.println(new String(b));
        fis.close();   //操作完成,关闭文件
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

使用read(byte[] b,int off,int len)读取score.txt中的内容:

try {
    FileInputStream fis = new FileInputStream("java_stream\\score.txt");
    //read(byte[] b, int off, int len)方法,int off表示从数组中第几位开始存数据,int len表示存几位数据
    byte[] b = new byte[100];
    fis.read(b, 0, 5);
    System.out.println(new String(b));
    fis.close();   //操作完成,关闭文件
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

输出:

Hello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值