首页 > 其他分享 >IO流之FileInputStream

IO流之FileInputStream

时间:2023-01-10 19:44:40浏览次数:41  
标签:文件 字节 流之 IO FileInputStream fileInputStream 输入 读取

IO流之FileInputStream

  • InputStream:字节输入流
    • InputStream抽象类是所有类字节输入流的超类
    • InputStream常用的子类
      1. FileInputStream:文件输入流
      2. BufferedInputStream:缓冲字节输入流
      3. ObjectInputStream:对象字节输入流

image

FileInputStream

//演示FileInputStream的使用(字节输入流 文件——>程序)
public class FileInputStream_ {
    public static void main(String[] args) {

    }
    /**
     * 演示读取文件。。。
     * 单个字节的读取,效率比较低
     */
    @Test
    public void readFile01() {
        String filePath = "d:\\hello.txt";
        int readData = 0;
        FileInputStream fileInputStream = null;
        try {
            //创建 FileInputStream 对象,用于读取文件
            fileInputStream = new FileInputStream(filePath);
            //从该输入流读取一个字节的数据。如果没有输入可用,此方法将阻止。
            //如果返回-1,表示读取完毕
            while ((readData = fileInputStream.read()) != -1) {
                System.out.print((char)readData);//转成char显示
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭文件流,释放资源
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 使用 read(byte[] b) 读取文件,提高效率
     */
    @Test
    public void readFile02() {
        String filePath = "d:\\hello.txt";
        //字节数组
        byte[] buf = new byte[8];//一次读8个字节
        int readLen = 0;
        FileInputStream fileInputStream = null;
        try {
            //创建 FileInputStream 对象,用于读取文件
            fileInputStream = new FileInputStream(filePath);
            //从该输入流读取最多b.length字节的数据到字节数组。此方法将阻塞,直到某些输入可用。
            //如果返回-1,表示读取完毕
            //如果读取正常,返回实际读取的字节数
            while ((readLen = fileInputStream.read(buf)) != -1) {
                System.out.print(new String(buf,0,readLen));//显示
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭文件流,释放资源
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

标签:文件,字节,流之,IO,FileInputStream,fileInputStream,输入,读取
From: https://www.cnblogs.com/cyyyds/p/17041235.html

相关文章

  • 2020,Transformation-invariant Gabor convolutional networks
    Introduction深度卷积神经网络(DCNNs)在字符识别、目标检测、人脸识别和语义分割等各个领域都取得了一系列突破。然而,由于缺乏为空间几何变换设计的特定模块,学习到的特征......
  • 10-使用Apriori算法进行关联分析
    title:10-使用Apriori算法进行关联分析date:2021-01-1810:58:30permalink:/pages/8c2d6b/......
  • Linux 部署 WANdisco Subversion(SVN)
    官方有提供安装的shell脚本。点击选择合适的版本下载运行安装。但是我们点击查看具体的脚本内容会发现,本质上还是配置了相应的软件源。我们可以手动来完成相应的操作。1......
  • 将sqlsessionfactory放到工具类
    publicclassSqlSessionFac{privatestaticSqlSessionFactorysqlSessionFactory;privateSqlSessionFac(){}publicstaticSqlSessionFactoryge......
  • Educational Codeforces Round 141 (Rated for Div. 2)(B,C,D)
    EducationalCodeforcesRound141(RatedforDiv.2)(B,C,D)BB这个题的大意是我们需要构造一个矩阵,我们需要这个矩阵的一个位置和它相邻位置的绝对值的不同数量最多我猜......
  • npm run dev报错TypeError: loaderContext.getResolve is not a function
    vue安装lessless-loader之后,运行项目报错:TypeError:loaderContext.getResolveisnotafunctionnpminstalllessless-loader--save之后,找到webpack.base.conf.j......
  • jenkins执行Build Now报错系列(一)generated for lockfileVersion@2
    控制台报错如下: 主要是因为npm内的版本是lockfileVersion@1的,但是项目中用的是lockfileversion@2,因此需要升级npm,升级语句是npminstall-gnpm。我这边的npm是通过选......
  • question28
    题目螺旋数阵对角线欧拉计划第28题解答1\(\rightarrow\)\(3^2\)\(\rightarrow\)\(5^2\)\(3^2+3^2-(3-1)+3^2-(3-1)*2+3^2-(3-1)*3\)每一圈的和可以计算为......
  • docker 部署minio
     1dockerpullminio/minio:RELEASE.2022-08-26T19-53-15Z2 dockerrun-p9000:9000-p9090:9090\--net=host\--nameminio\-d--restart=alway......
  • [IOI2000]邮局 题解
    简要题意线段上有\(V\)个村庄,现在要建\(P\)个邮局,使每个村庄到最近的邮局的距离之和最小。50分做法设\(dp[i][j]\)表示第一个村庄到第\(i\)个村庄,建了\(j\)个......