IO流----字节输入流FileInputStream

本文深入讲解Java中的IO流概念,包括字节流和字符流两大类,并详细解释了字节输入流的工作原理及其应用场景,通过实例帮助理解如何利用FileInputStream进行文件读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IO流:输入输出流

流可以分为以下两类:

1)字节流
2)字符流

其中,字节流可以读取任何一切文件(yyds),字节流又可以分为两类:

1)字节输入流(InputStream 包含 FileInputStreamBufferedInputStream)
2)字节输出流

流的输入输出是如何界定?

一般来说,以程序为参照物,数据流入程序-----输入流,反之,数据流出程序----输出流

举个例子,比如,键盘----->程序(输入流),文本文件----->程序(输入流)
在这里插入图片描述

那么数据输入程序的过程?或者以生活中的水龙头来举例,更深刻的明白输入流,比如:水厂的水流入你家,这就是一个很形象的输入流的例子,水厂的水-----你家,具体过程如下

1)第一步,有水厂存在(水厂---数据)
2)第二步,铺设管道(FileInputStreamBufferedInputStream)
3)第三步,打开水龙头
4)第四步,关闭水龙头

字节输入流FileInputStream在程序和文件之间创建连接

字节输入流在程序和文件中创建连接的方式主要有以下三种,其中最常见的是第一种和第三种:

FileInputStream​(File file):通过打开与实际文件的连接来创建 FileInputStream ,该文件由文件系统中的 File对象 file命名。
FileInputStream​(FileDescriptor fdObj):使用文件描述符 fdObj创建 FileInputStream ,该文件描述符表示与文件系统中实际文件的现有连接。
FileInputStream​(String name):通过打开与实际文件的连接来创建 FileInputStream ,该文件由文件系统中的路径名 name命名。

实现代码

import java.io.FileInputStream;

/**
 * IO流:输入输出流
 * 流分类:字节流  字符流
 * 字节流:
 * 字节输入流
 * 输入流以程序为参考点,数据流入程序----输入流
 * 数据流出程序----输出流
 * InputStream(字节输入流)
 * FileInputStream
 * BufferedInputStream
 * 字节输出流
 */
public class IODemo1 {
    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
        try {
            //1.在文件和程序之间铺设管道
            FileInputStream fis = new FileInputStream("F:\\20210803.txt");
            //2.开水龙头
            int ch = 0;
            while((ch = fis.read())!=-1){
                System.out.print((char)ch);
            }
//            for(int ch=0;(ch = fis.read())!=-1;){
//                System.out.println("ch="+(char)ch);
//            }

            //3.关闭水龙头(关闭流)
            fis.close();

           /* File file = new File("F:\\20210803.txt");
            if (file.exists() && file.length() > 0) {
                FileInputStream fis = new FileInputStream(file);
            }*/
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值