Java基础之FileInputStream和FileOutputStream流详解

 更新时间:2021年04月27日 11:33:38   作者:码农研究僧  
这篇文章主要介绍了Java基础之FileInputStream和FileOutputStream流详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下

一、前言

FileInputStream 用于读取本地文件中的字节数据,继承InputStream类

FileOutputStream 将字节数据写到文件,继承OutputStream类

二、创建流对象

FileInputStream fis= new FileInputStream(“绝对路径”);

FileOutputStream fos= new FileOutputStream(“绝对路径”);

三、FileInputStream常用方法

1.构造函数,打开实际文件路径连接来创建FileInputStream

FileInputStream(路径); 

2.关闭文件输入输出流,释放有关系统资源

没有返回值,一般搭配输入输出留的对象

close();
fis.close();
fos.close();  

3.读取数据字节,有返回值

read();返回的是字节的(0-255)内的字节值,读一个自动到下一个,遇到-1即退出

read();//读取一个数据字节,
read(byte[] b);//将b.length个字节的数据读入一个 byte 数组中    
read(byte[] b,int off,int len)//将off到len 个字节的数据读入一个byte 数组中

4.从输入流中跳过并丢弃 n 个字节的数据

kip(long n); //返回值为long  

四、FileOutputStream常用方法

写入文件

write(int b);//将指定字节写入文件,写入字节形式的(0-255)int值.
write(byte[] b);  //将b.length 个字节从指定 byte 数组写入此文件
write(byte[] b, int off, int len); //将指定 byte 数组中从偏移量 off 开始的 len 个字节写入文件

五、输入输出流测试代码

一个个字节读入,并一个个字节输出到另一个文件,即复制文件

class test1{
    public static void main(String[] args) throws IOException {
        int b;
        FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt");       //创建输入流对象
        FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt");   //创建输出流对象
        while((b = fis.read()) != -1) { //将每次读到的赋值给b
            System.out.println(b);    
            fos.write(b);   //将b中的字节写出去
        }
        fis.close();/关流,释放资源
        fos.close();
        }

    }

该测试代码输出的是对应的ASCII码值,每一个换行都会在输出对应的换行和回车键的ASCII码

并且将text1的文件复制到text2文件,只不过是一个个字节传送,比较缓慢

设置缓冲区,将一个个字节存放之后,在对应输入输出,加快了速度

class test1{
    public static void main(String[] args) throws IOException {
        //int b;
        FileInputStream fis = new FileInputStream("C:\\Users\\86135\\Desktop\\text1.txt");       //创建输入流对象
        FileOutputStream fos = new FileOutputStream("C:\\Users\\86135\\Desktop\\text2.txt");   //创建输出流对象
        byte[] bytes = new byte[1024*10];//用数组当一个缓冲区
        while(( fis.read(bytes)) != -1) {
            System.out.println(bytes);  //将每次读到的赋值给bytes
            fos.write(bytes); //将bytes中的字节写出去
        }

        fis.close(); //关流,释放资源
        fos.close();
        }
    }

可以将以上的方法在代码中一个个尝试

到此这篇关于Java基础之FileInputStream和FileOutputStream流详解的文章就介绍到这了,更多相关Java FileInputStream和FileOutputStream流内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot 2.0 整合sharding-jdbc中间件实现数据分库分表

    SpringBoot 2.0 整合sharding-jdbc中间件实现数据分库分表

    这篇文章主要介绍了SpringBoot 2.0 整合sharding-jdbc中间件,实现数据分库分表,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-06-06
  • java实现简单的加减乘除计算器

    java实现简单的加减乘除计算器

    这篇文章主要为大家详细介绍了java实现简单的加减乘除计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Java中解析JSON和生成JSON字符串的全面指南

    Java中解析JSON和生成JSON字符串的全面指南

    在现代 Java 开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛应用于前后端交互、配置文件读取以及各类数据存储场景,本文将深入剖析常用库及对应实现方式,助力您轻松驾驭 JSON 数据处理,需要的朋友可以参考下
    2025-03-03
  • Java实现数组翻转的实现代码

    Java实现数组翻转的实现代码

    这篇文章主要介绍了Java实现数组翻转的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java双向链表按照顺序添加节点的方法实例

    Java双向链表按照顺序添加节点的方法实例

    这篇文章主要给大家介绍了关于Java双向链表按照顺序添加节点的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 使用@Builder导致无法创建无参构造方法的解决

    使用@Builder导致无法创建无参构造方法的解决

    这篇文章主要介绍了使用@Builder导致无法创建无参构造方法的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • java unicode转码为中文实例

    java unicode转码为中文实例

    这篇文章主要介绍了java unicode转码为中文的实例,大家参考使用吧
    2013-12-12
  • Springboot如何通过路径映射获取本机图片资源

    Springboot如何通过路径映射获取本机图片资源

    项目中对图片的处理与查看是必不可少的,本文将讲解如何通过项目路径来获取到本机电脑的图片资源,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-08-08
  • java中如何调用js

    java中如何调用js

    Nashorn是Java8中引入的一个新的JavaScript引擎,它允许在JVM上运行JavaScript代码,并且可以与Java代码相互调用,Nashorn遵循JSR233规范,是一个纯Java实现的JavaScript引擎,可以与Java程序无缝集成,提供动态脚本执行和灵活性
    2025-01-01
  • Java是自学好还是参加培训班好?

    Java是自学好还是参加培训班好?

    这篇文章主要介绍了Java是自学好还是参加培训班好这一问题,给大家介绍了哪些人适合自学java,哪些人适合java培训班学习,大家可以看看内容详情
    2018-04-04

最新评论