Java语言中的文件数据流示例详解

作者:YWuHuang 时间:2023-05-12 19:55:29 

文件数据流

在java语言中,进行文件输入和输出时,经常会使用到FileIntputStream和FileOutputStream两个文件数据流。它们分别是抽象类InputStream和抽象类OutputStream的子类。

FileInputStream

FileInputStream的构造方法:

  • FileInputStream(File file):通过打开一个到实际文件的连接来创建一个FileInputStream对象,该文件通过文件系统中的File对象file指定。

  • FileInputStream(String name):通过打开一个到实际文件的连接来创建一个FileInputStream对象,该文件通过文件系统中的路径名name来指定。

  • 代码示例:

FileInputStream inFile=new FileInputStream("xxx.xxx");//文件名.文件类型

FileOutputStream

FileOutputStream构造方法:

  • FileOutputStream(File file[ , boolean addFlag ]):创建一个向指定File对象表示的文件中写入数据的文件输出流。

  • FileOutputStream(FileDescriptor fdObj):创建一个向指定文件描述符处写入数据的输出文件流,该文件描述表示一个文件系统中的某个实际文件的现有连接。

  • FileOutputStream(String name[ ,boolean addFlag ]):创建一个向具有指定name的文件中写入数据的输出文件流

  • 代码示例:

FileOutputStream outFile=new FileOutputStream("xxx.xxx"); //文件名.文件类型,如 a.bat

举个栗子

我们将一个文件中的数据复制到另一个文件

  • 比如,将a.txt文件数据复制到b.txt

Java语言中的文件数据流示例详解

  • 代码示例

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyA {
   public static void main(String[] args) {
       String curPath=System.getProperty ( "user.dir" );//得到用户当前工作目录
       System.out.println (curPath);
       try {
           //文件输入流
           FileInputStream inFile=new FileInputStream ( curPath+"/a.txt" );
           //文件输出流
           FileOutputStream outFile =new FileOutputStream ( curPath+"/b.txt" );
           //返回可以不受阻塞地从此文件输入流中读取的字节数
           while(inFile.available ()>0){
               int ch=inFile.read (); //从输入流中读取字符,并返回
               outFile.write (ch);    //将字符ch写到输出流中
           }
           inFile.close (); //关闭输入流
           outFile.close ();//关闭输出流
       }catch (FileNotFoundException e){
           System.out.println ("文件无法打开");
       }catch (IOException e){
           System.out.println ("文件无法读写");
       }
   }
}

来源:https://juejin.cn/post/7158838132421918734

标签:Java,文件,数据流
0
投稿

猜你喜欢

  • 浅谈java多态的实现主要体现在哪些方面

    2023-08-17 07:41:32
  • Java调用windows系统的CMD命令并启动新程序

    2021-11-27 17:09:13
  • Java多线程Future松获取异步任务结果轻松实现

    2022-11-22 15:49:38
  • 关于Unity C# Mathf.Abs()取绝对值性能测试详解

    2022-01-28 04:47:58
  • Android实现截屏功能

    2022-10-25 04:36:52
  • Spring计划任务用法实例详解

    2021-08-03 11:41:08
  • Java 线程对比(Thread,Runnable,Callable)实例详解

    2022-10-20 21:34:08
  • intellij idea修改maven配置时总是恢复默认配置的解决方法idea版本(2020.2.x)

    2023-06-30 23:56:10
  • Java中静态类型检查是如何进行的实例思路详解

    2022-01-01 16:08:30
  • java开发之内部类的用法

    2023-02-04 21:30:07
  • SpringBoot@DeleteMapping(/xxx/{id})请求报405的解决

    2022-06-13 14:00:48
  • Flutter 仿微信支付界面

    2023-08-30 01:31:53
  • JVM分配和回收堆外内存的方式与注意点

    2021-07-25 08:53:34
  • java文件上传下载代码实例

    2023-11-10 05:06:14
  • Kotlin 基础教程之类、对象、接口

    2022-03-12 04:22:15
  • Java Eclipse进行断点调试的方法

    2023-06-14 06:31:27
  • android 通过MediaRecorder实现简单的录音示例

    2023-07-29 06:03:54
  • .Net Winform开发笔记(四)透过现象看本质

    2022-06-22 09:36:24
  • Android自定义TextView实现drawableLeft内容居中

    2022-04-24 18:20:14
  • Android多媒体之画画板开发案例分享

    2022-11-17 11:05:08
  • asp之家 软件编程 m.aspxhome.com