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

yizhihongxing

下面是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日

相关文章

  • 点击地图div上的按钮实现对地图数据的入库操作

    想要实现在点击地图div上的按钮后能够将地图数据保存到数据库中,需要按照以下步骤进行操作: 在HTML文件中,添加一个按钮到地图的div组件上。可以使用HTML中的button标签,也可以使用一张带有点击事件的图片或图标来代替,将其位置放在地图上层,使得用户能够直接点击按钮实现数据入库功能。 <div id="map" style=…

    Java 2023年6月15日
    00
  • 利用JAVA反射,读取数据库表名,自动生成对应实体类的操作

    利用JAVA反射,读取数据库表名,自动生成对应实体类的操作可以分为以下几个步骤: 获取数据库中所有的表名 可以通过 JDBC 中的 DatabaseMetaData 类来获取数据库中所有的表名: DatabaseMetaData metaData = connection.getMetaData(); ResultSet tablesResultSet = …

    Java 2023年5月20日
    00
  • Java Apache Commons报错“SAXNotRecognizedException”的原因与解决方法

    “SAXNotRecognizedException”是Java的Apache Commons类库中的一个异常,通常由以下原因之一引起: 无效的SAX属性:如果SAX属性无效,则可能会出现此错误。在这种情况下,需要检查SAX属性以解决此问题。 无效的SAX特性:如果SAX特性无效,则可能会出现此错误。在这种情况下,需要检查SAX特性以解决此问题。 以下是两个…

    Java 2023年5月5日
    00
  • java多线程实现服务器端与多客户端之间的通信

    以下是“Java多线程实现服务器端与多客户端之间的通信”的完整攻略: 1. 确定通信协议 在服务器端与多客户端之间进行通信的前提是要确定一个基于网络的通信协议。一般情况下,TCP协议是实现这样的通信的最好选择。TCP协议通过三次握手建立连接,确保数据完整性,是一种可靠的协议。所以,我们需要在项目中导入java.net包,来使用TCP协议的功能。 2. 编写服…

    Java 2023年5月19日
    00
  • Nodejs 中文分词常用模块用法分析

    Nodejs 中文分词常用模块用法分析 中文分词一直是自然语言处理领域的重要研究方向,而Nodejs提供了诸多中文分词模块便于使用。本文将详细介绍常用的中文分词模块并给出示例说明。 分词模块介绍 本节将介绍目前比较流行的中文分词模块,包括: nodejieba segment node-segment nodejieba nodejieba是依据结巴分词算法…

    Java 2023年5月19日
    00
  • Java_int、double型数组常用操作工具类(分享)

    Java_int、double型数组常用操作工具类(分享) 介绍 本文主要介绍Java中对int和double型数组常用的操作,包括数组的初始化、求和、平均值、最小值、最大值等实用方法。 数组初始化 数组初始化可以通过实例化数组对象进行,也可以通过静态初始化和动态初始化的方式进行。 静态初始化 静态初始化使用{}声明并初始化数组,示例如下: int[] ar…

    Java 2023年5月26日
    00
  • Java发送form-data请求实现文件上传

    下面是详细的讲解“Java发送form-data请求实现文件上传”的完整攻略: 介绍 HTTP协议中有多种方式可以实现文件上传,其中 multipart/form-data 是一种常见的方式,可以通过 POST 方法将表单数据和文件一同上传到服务器。在Java中,我们可以通过一些开源库或工具来实现这个过程,比如 HttpClient,OkHttp,RestT…

    Java 2023年5月20日
    00
  • spring AOP定义AfterThrowing增加处理实例分析

    下面为您详细讲解Spring AOP定义AfterThrowing增加处理实例的完整攻略。 什么是Spring AOP? Spring AOP(Aspect Oriented Programming)是Spring框架的一个重要特性,主要为了解决在面向对象编程中的一些常见问题,如日志等处理。 Spring AOP主要是通过代理和横切面实现的,代理是对目标对象…

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