Java中IO流文件读取、写入和复制的实例

下面是Java中IO流文件读取、写入和复制的实例的完整攻略。

IO流简介

在Java中,输入输出都是通过流(Stream)来实现的,也就是将数据源或者目的地以流的形式组织起来,以字节为基础的流就是字节流,以字符为基础的流就是字符流。在Java中,IO流分为四个抽象类:InputStream、OutputStream、Reader和Writer。

文件读取

Java中的IO文件读取需要借助FileInputStream类。它的构造方法接收一个文件的路径,通过read()方法获得数组或者单个字节(int类型)。

下面是文件读取的示例代码:

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

public class FileReadTest {
    public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            FileInputStream fis = new FileInputStream(file);
            byte[] content = new byte[(int) file.length()];
            fis.read(content);
            fis.close();
            System.out.println(new String(content));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先构造了一个File对象,然后通过FileInputStream的read()方法读取文件的数据,最后将读取到的内容存放在一个字节数组中,并输出到控制台。

文件写入

Java中的IO文件写入需要借助FileOutputStream类。它的构造方法接收一个文件的路径,通过write()方法将字节数组或者单个字节(int类型)写入文件中。

下面是文件写入的示例代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileWriteTest {
    public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            FileOutputStream fos = new FileOutputStream(file);
            String content = "This is a test sentence.";
            fos.write(content.getBytes());
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先构造了一个File对象,然后通过FileOutputStream的write()方法将字符串转换成字节数组并写入文件中。

文件复制

Java中的IO文件复制需要借助FileInputStream和FileOutputStream类。我们可以通过将源文件的数据,读入到内存中(内存中相当于做了个中转站),然后将内存中的数据写入到目标文件中,达到复制文件的效果。

下面是文件复制的示例代码:

import java.io.*;

public class FileCopyTest {
    public static void main(String[] args) {
        try {
            File source = new File("test.txt");
            File target = new File("test_copy.txt");
            FileInputStream fis = new FileInputStream(source);
            FileOutputStream fos = new FileOutputStream(target);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = fis.read(buffer)) > 0) {
                fos.write(buffer, 0, length);
            }
            fis.close();
            fos.close();
            System.out.println("Copy file success.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先构造了两个File对象,然后通过FileInputStream的read()方法将源文件的内容读入到一个缓冲区中,然后通过FileOutputStream的write()方法将缓冲区中的内容写入到目标文件中,最后关闭输入输出流。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中IO流文件读取、写入和复制的实例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 常见的Java Agent有哪些?

    常见的Java Agent有如下几种: ByteBuddy:基于Java字节码增强库,可以实现类加载的字节码增强。 ASM:一个轻量级Java字节码操作库,ASM可以动态生成类、方法或 Field,或者对现有类进行操作。 Javassist:Java字节码操作库,它可以在字节码层面上修改Java程序。 Instrument:Java的一个API,可以在运行时…

    Java 2023年5月11日
    00
  • Spring Security实现接口放通的方法详解

    接下来我将为您详细讲解“Spring Security实现接口放通的方法详解”的完整攻略,并提供两个示例。 1. Spring Security简介 Spring Security是一个基于Spring框架的安全控制框架,主要用于身份验证和授权。它提供了一组完整的认证和授权机制,可以帮助我们快速地构建安全性较高的Web系统。Spring Security提供…

    Java 2023年5月20日
    00
  • 用java实现杨辉三角的示例代码

    下面是详细讲解使用Java实现杨辉三角的完整攻略。 1. 确定杨辉三角的数据生成方式 杨辉三角是一个数学概念,它的每个数字都是由上方两个数字相加而来。 首先,我们来确定杨辉三角的每个数字如何生成。以第4行为例: 1 1 1 1 2 1 1 3 3 1 我们从第1列开始,每到一个新的位置,它的值都等于上一行同列和前一列的值之和,如果上一行中的前/后一个数字不存…

    Java 2023年5月18日
    00
  • Java Mybatis框架增删查改与核心配置详解流程与用法

    下面是我为您准备的Java Mybatis框架增删查改与核心配置详解攻略。 1. 简介 Mybatis是一个基于Java的持久化框架,在数据访问层(DAO层)上提供了映射关系,可以通过XML文件或者注解的方式方便地进行增删查改操作。 2. 核心配置 Mybatis的核心配置主要包括配置文件、映射文件、SqlSessionFactory、SqlSession和…

    Java 2023年5月20日
    00
  • JAVA中Context的详细介绍和实例分析

    我来为你详细讲解Java中Context的介绍和实例分析。我的回答中将包括以下内容: Context的概念及作用 Context常见类型及其实现方式 实例分析1:如何在Servlet中使用Context 实例分析2:如何在Android中使用Context 1. Context的概念及作用 Context在Java中是一个很重要的概念,可以理解为上下文环境的…

    Java 2023年5月24日
    00
  • java组件SmartUpload和FileUpload实现文件上传功能

    下面是“java组件SmartUpload和FileUpload实现文件上传功能”的完整攻略。 背景介绍 在Web开发中,文件上传是一个非常普遍的需求。文件上传可以用来上传用户头像、上传附件等,而Java作为一种广泛应用于Web开发的语言,也提供了不少关于文件上传的解决方案。本攻略将详细介绍使用Java组件SmartUpload和FileUpload实现文件…

    Java 2023年6月15日
    00
  • struts2中通过json传值解决乱码问题的实现方法

    下面我将详细讲解一下在Struts2中如何通过JSON传值解决乱码问题的具体实现方法。 1. 出现乱码问题的原因 在Struts2使用JSON传值时出现乱码的原因,主要是因为在服务器端和客户端之间传输的中间环节中,出现了编码格式不一致的情况,导致数据在传输过程中出错。 2. 解决乱码问题的实现方法 2.1 设置JSON编码器的字符集 首先,我们需要在Stru…

    Java 2023年5月20日
    00
  • Java8新特性之线程安全日期类

    Java8新特性之线程安全日期类 Java8中加入的线程安全日期类提供了一种替代旧的日期类的方式,同时线程安全和可读性提升了不少。 LocalDate LocalDate类表示一个不可变的日期对象。它使我们能够以一种简单而明确的方式操纵日期。例如,我们可以使用LocalDate.now()获取当前日期,或者使用LocalDate.of()创建特定的日期。这些…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部