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解析json报文实例解析

    下面我来详细讲解“Java解析json报文实例解析”的完整攻略,包含以下几个步骤: 1. 基础知识 在进行 Java 解析 JSON 报文之前,需要先掌握一些基础知识,包括: 什么是 JSON?JSON 是一种轻量级的数据交换格式,可以被多种编程语言解析。 JSON 数据结构:JSON 由键值对或数组组成。 Java 解析 JSON 的库:常用的有 Jack…

    Java 2023年5月26日
    00
  • Java运行时动态生成对象的方法小结

    下面是详细的Java运行时动态生成对象的方法攻略。 1. 简介 在Java中,动态生成对象可以使用Class类的newInstance方法实现。新的创建对象方式是在运行时实现的,因此被称为Java运行时动态生成对象。使用这种方式可以避免在编译时给出类名的麻烦,只需要在运行时确定需要实例化的类名即可。 2. 方法使用 Class类是Java中所有类的超类,它通…

    Java 2023年5月26日
    00
  • Java的Hibernate框架中Criteria查询使用的实例讲解

    Java的Hibernate框架中Criteria查询使用的实例讲解 Hibernate是一个强大的ORM(对象关系映射)框架,在Hibernate中,Criteria API是一个使用简单的标准API,它提供了在不检查语法的情况下动态构建查询的功能。本文将对Java的Hibernate框架中Criteria查询使用的实例进行讲解。 Criteria查询的基…

    Java 2023年5月19日
    00
  • 浅谈对象与Map相互转化

    关于“浅谈对象与Map相互转化”的攻略,我将分为以下三个部分进行讲解: 对象转Map Map转对象 示例说明 对象转Map 在JavaScript中,我们可以使用Object.entries()方法快速地将一个对象转化为Map。 const obj = { name: "Tom", age: 18 }; const map = new M…

    Java 2023年5月26日
    00
  • Java常用时间工具类总结(珍藏版)

    下面详细讲解Java常用时间工具类总结(珍藏版)。 什么是Java时间工具类? Java时间工具类是在Java中为处理时间日期相关操作而设计的工具类库。Java开发者可以使用这些工具类方便地完成一些日常的时间日期操作,如日期加减、格式化、解析等操作。 常用时间工具类总结 Java中有很多优秀的时间工具类库,其中比较受欢迎和常用的有以下几个: 1. java.…

    Java 2023年5月20日
    00
  • Spring Boot应用程序同时支持HTTP和HTTPS协议的实现方法

    下面是关于如何实现Spring Boot应用程序同时支持HTTP和HTTPS协议的完整攻略: 准备工作 在实现HTTPS协议之前,我们需要准备一个SSL证书,可以选择购买正式的SSL证书或者自己生成一个自签名的证书。 在这里,我们示范自签名证书的生成方法: 生成自签名证书 安装openssl工具 在Linux环境中,可以通过包管理器进行安装:比如Ubuntu…

    Java 2023年5月20日
    00
  • SpringBoot实现多个子域共享cookie的示例

    下面将详细讲解SpringBoot实现多个子域共享cookie的完整攻略。首先我们需要了解什么是cookie和域名。 什么是cookie和域名? HTTP Cookie,一般简称 Cookie,指某些网站为了辨别用户身份、进行 session 跟踪而存储在用户本地终端上的数据(通常经过加密)。 而域名,是互联网上用于区分不同网站的名称。例如在www.exam…

    Java 2023年5月19日
    00
  • 从0开始学习大数据之java spark编程入门与项目实践

    从0开始学习大数据之Java Spark编程入门与项目实践攻略 前言 在大数据时代,数据量和数据处理的复杂性不断增加,需要更加高效和灵活的处理方式。Apache Spark作为当前最流行的大数据处理框架之一,优化了Hadoop MapReduce的不足,支持复杂的数据处理,具有高效、可扩展、易用、友好的API等特点,因此成为很多企业和个人的选择。本文将详细介…

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