Java_FileInputStream及FileOutputStream详解_java文件拷贝的实现

2023-11-03 16:18

本文主要是介绍Java_FileInputStream及FileOutputStream详解_java文件拷贝的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 2.6.3 FileInputStream与FileOutputStream的使用
        • 2.6.3.1 FileInputStream类的的使用
        • 2.6.3.2 FileOutputStream类的使用方法
      • 2.6.4 使用字节流实现文件复制
      • 2.6.5 更多java知识请点击连接:

2.6.3 FileInputStream与FileOutputStream的使用

2.6.3.1 FileInputStream类的的使用

1.FileInputStream的构造方法

  • new FileInputStream(String name) :从指定路径获得数据源,若文件不存在则抛异常
FileInputStream f = new FileInputStream("D:\\a.txt");
  • new FileInputStream(File file) 搭建一个File类的对象file对应的文件的数据流通道,文件不存在则抛异常
        File fileA = new File("D:\\b.txt");fileA.createNewFile();FileInputStream f = new FileInputStream(name); 
  • new FileInputStream(FileDescriptor fdObj) 搭建一个与FileDescriptor类对象描述的文件连接的数据流管道
        FileDescriptor a =new FileDescriptor();FileInputStream f = new FileInputStream(a);

2.FileInputStream的普通方法

  • read() :从这个输入流一次读取一个字节的数据

  • read(byte b[]):读取数据源的全部数据放到b byte数组中。

  • read(byte b[], int off, int len):从该输入流读取到字节数据。放入一个字节数组。off:数据中的起始偏移量(下标从0开始),len:写入的字数。

  • skip(long n):从当前位置跳过n个字节数。如一个文件中有ILOVEYOU内容

byte b[] =new byte[10];
long aa =4L;
f.skip(aa);
f.read(b)
//则b中只存有EYOU内容
  • available():返回可以读取的剩余字节数的估计值。

  • close():关闭流

  • getFD(): 获得FileDescriptor文件描述符

  • getChannel():返回文件通道

2.6.3.2 FileOutputStream类的使用方法

1.FileOutputStream的构造方法

构造方法用法与FileInputStream构造方法基本一致,详参FileInputStream构造方法

  • FileOutputStream(File file)
    创建文件输出流以写入由指定的 File对象表示的文件。如原文件中有数据,默认覆盖数据。
        File fileA = new File("D:\\b.txt");fileA.createNewFile();FileOutputStream f = new FileOutputStream(fileA); 
  • FileOutputStream(File file, boolean append)
    创建文件输出流以写入由指定的 File对象表示的文件。跟上一个布尔值,如true则表示如果原文件中有内容,则在此基础上追加写入数据而不覆盖。
FileOutputStream f = new FileOutputStream("D:\\a.txt",true)
  • FileOutputStream(FileDescriptor fdObj)
    创建文件输出流以写入指定的文件描述符,表示与文件系统中实际文件的现有连接。
  • FileOutputStream(String name)
    创建文件输出流以指定的名称写入文件。
  • FileOutputStream(String name, boolean append)
    创建文件输出流以指定的名称写入文件。跟上一个布尔值,如true则表示如果原文件中有内容,则在此基础上追加写入数据而不覆盖。

2.FileOutputStream的普通方法

  • write(int b) 将一个指定的整型数据写入输出流指向的文件
write(f.read()) //将输入流f当前读到的一个字节写入到输出流指向的文件中
write(99)  //将ASCLL码表中小写字母c对应的十进制整数99写入到输出流指向的文件中
  • write(byte b[]):从指定字节数组写入

  • write(byte b[], int off, int len)F:从指定字节数组写入。off:数据中的起始偏移量,len:写入的字数。

  • close():关闭流

  • getChannel():返回文件通道:

  • getFD():获得FileDescriptor文件描述符

2.6.4 使用字节流实现文件复制

将D:\b.txt中的内容复制到D:\新建文本.txt中去

public class TestFileInputStream {public static void main(String[] args) throws IOException {File name1 = new File("D:\\b.txt");name1.createNewFile();FileInputStream f = new FileInputStream(name1);FileOutputStream k = new FileOutputStream("D:\\新建文本.txt");byte[] b= new byte[(int) name1.length()];f.read(b);k.write(b);f.close();k.close();}}

2.6.5 更多java知识请点击连接:

Scorpicat的博文←

这篇关于Java_FileInputStream及FileOutputStream详解_java文件拷贝的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/339378

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很