首页 > 其他分享 >FileInPutStream读取文件中内容

FileInPutStream读取文件中内容

时间:2022-11-15 14:13:17浏览次数:60  
标签:fis 字节 文件 read File new FileInPutStream 读取

【1】读取文本文件

package com.msb.io02;

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

/**
 * @author : liu
 * 日期:10:52:13
 * 描述:IntelliJ IDEA
 * 版本:1.0
 */
public class Test01 {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) throws IOException {
        //功能:利用字节流将文件中内容读取到程序中来
        //1.有一个源文件
        File f=new File("d:\\test.txt");
        //2.将一个字节流  这个管怼到源文件上
        FileInputStream fp=new FileInputStream(f);
        //3.开始读取动作
        /*
        细节1:文件是UTF-8进行存储的,所以英文字符底层实际占用1个字节
        但是中文字符,底层实际占用3个字节
        细节2:如果文件是文本文件那么就不要使用字节流读取了,建议使用字符流
        细节3:read()读取一个字节,但是你有没有发现返回值是int类型,而不是byte类型?
        read()底层做了处理,让返回的数据都是“正数”
        就是为了避免如果字节返回返回的是-1的话,那么底层是读入的字节,还是到文件结尾呢。
        * */
        int n = fp.read();
        while (n!=-1){
            System.out.println(n);
            n=fp.read();
        }
        //4.关闭流
        fp.close();

    }
}

【2】利用字节流读取非文本文件(以图片为例)----》一个字节一个字节的读取

package com.msb.io02;
import java.io.*;

/**
 * @author : liu
 * 日期:11:31:01
 * 描述:IntelliJ IDEA
 * 版本:1.0
 */
public class Test02 {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) throws IOException {
        File file= new File("d:\\lol.jpg");
        FileInputStream fis=new FileInputStream(file);
        int read = fis.read();
        int count=0;//加入一个计数器,用来记录读入的字节个数
        while (read!=-1){
            count++;
            read=fis.read();
        }
        System.out.println(count);
        fis.close();
    }
}

【3】利用缓冲数组读取 ,字节类型的缓存数组

package com.msb.io02;
import java.io.*;

/**
 * @author : liu
 * 日期:11:31:01
 * 描述:IntelliJ IDEA
 * 版本:1.0
 */
public class Test02 {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) throws IOException {
        File file= new File("d:\\lol.jpg");
        FileInputStream fis=new FileInputStream(file);
        byte[] b=new byte[1024*6];
        int read = fis.read(b);//read指的就是读取的数组中有效长度
        while (read!=-1){
            for (int i = 0; i < read; i++) {
                System.out.println(b[i]);
            }
            read=fis.read(b);
        }
        fis.close();
    }
}

 

标签:fis,字节,文件,read,File,new,FileInPutStream,读取
From: https://www.cnblogs.com/jeldp/p/16892226.html

相关文章

  • Linux-文件和目录常用命令-笔记
    目标查看目录内容​​ls​​切换目录​​cd​​创建和删除操作​​touch​​​​rm​​​​mkdir​​拷贝和移动文件​​cp​​​​mv​​查看文件内容​​cat​​​​more......
  • 编译成其他平台的可执行文件
    这里以在window中编译成linux可运行的二进制文件为例需要临时修改环境变量在cmd中修改SETCGO_ENABLED=0SETGOOS=linuxSETGOARCH=amd64在powershell中修改(win1......
  • Window下批处理分割txt、csv等文件
    日常工作中常遇到大文件,无法打开、无法编辑的情况。一般在Linux下可通过split-l-d-afile.txt的命令直接进行分割为多个文件。但有时在Window下也有同样的需求,......
  • GO读取Yaml文件
    yaml语法简介YAML语言(发音/ˈjæməl/)的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。YAML有一个小的怪癖。所有的YAML文件开始行都应该是--......
  • ASP.NET Core教程-Configuration(配置)-预定义中间件-静态文件支持
    更新记录转载请注明出处:2022年11月15日发布。2022年11月12日从笔记迁移到博客。基本使用使用UseStaticFiles()中间件即可支持静态文件,然后将静态文件放在根目录......
  • GO读取toml格式文件
    在toml以#作为注释,文件内容也是需要有一个section其下内容以key=value书写,key不能为空,但是可以是空引号,key可以用双引号也可以不用,value是字符串时需要用双引号引......
  • day31 1 tomcat介绍与创建web项目 & 2 继承HttpServlet类、配置webxml全局配置文件 &
    ServletJavaServlet是运行在Web服务器或应用服务器上的程序,作为客户端(Web浏览器或其他HTTP客户端)和服务端(HTTP服务器上的数据库或应用程序)之间的中间层。使用Servlet可......
  • 文件导入 - TypeScript
    require与importrequire:是运行时调用,所以require理论上可以运用在代码的任何地方import:是编译时调用,所以必须放在文件开头-使用require导入index.ts//----------......
  • 在文件原位置修改文件内容
    最近需要在文件原位置修改内容,该方法主要用于较少的文件内容,同时修改之后的内容和修改之前的格式一致,较适用于配置文件的原位置修改。下面是范例代码:#include<stdio.h>#i......
  • 案例:完成文件的复制操作
    功能分解1:文件---》FileReader一个字符一个字符将文件中的内容读取到程序中了packagecom.msb.io01;importjava.io.File;importjava.io.FileNotFoundException;im......