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()方法将缓冲区中的内容写入到目标文件中,最后关闭输入输出流。

阅读剩余 52%

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

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

相关文章

  • asp.net开发微信公众平台之获取用户消息并处理

    我非常愿意为您讲解“asp.net开发微信公众平台之获取用户消息并处理”的完整攻略。 前置条件 在进行下面的步骤之前,您需要准备好以下前置条件: 一个搭建好的asp.net项目。 一个微信公众号。 在微信公众平台上获取到公众号的AppID和AppSecret。 安装WeChat SDK。 步骤1:获取微信服务器发送的消息 通过ASP.NET处理微信公众平台的…

    Java 2023年5月19日
    00
  • Java将网络图片转成输入流以及将url转成InputStream问题

    将网络图片转换为输入流以及将URL转换为InputStream是Java中常见的操作,本文将提供使用Java进行这两项操作的完整攻略。 1. 将网络图片转换为输入流 要将网络图片转换为输入流,需要使用Java的网络编程库和输入流类。 一般情况下,可以使用java.net包下的URL类和URLConnection类来获取网络图片的输入流。具体步骤如下: 使用U…

    Java 2023年5月20日
    00
  • 两种java实现二分查找的方式

    下面是详细讲解“两种java实现二分查找的方式”的攻略。 一、二分查找基本算法 二分查找算法的基本思想是:在一个有序数组中,查找一个元素,先找到数组的中间元素,然后将要查找的元素和中间元素进行比较,如果相等则直接返回中间元素,如果大于则在中间元素的右半部分继续查找,如果小于则在中间元素的左半部分继续查找,如此循环直到找到要查找的元素或者找不到为止。 Java…

    Java 2023年5月19日
    00
  • 详解tomcat各个端口的作用

    详解Tomcat各个端口的作用 本文将详细介绍 Tomcat 各个端口的作用,帮助用户更好地了解 Tomcat 的运行机制。 Tomcat 的端口 Tomcat 有三个最重要的端口,它们分别是: 8080: HTTP 请求的默认端口,用于 Web 应用程序和客户端之间的通信。 8005: Shutdown 端口,用于远程关闭 Tomcat 服务。 8009:…

    Java 2023年5月19日
    00
  • Struts2单选按钮详解及枚举类型的转换代码示例

    Struts2单选按钮详解及枚举类型的转换代码示例 什么是单选按钮 单选按钮是一种常见的选项表单元素,通常用于让用户在多个选项中选择一个。在Struts2中,通过使用<s:radio>标签可以轻松地创建单选按钮,并且支持流行的UI框架,如Bootstrap和jQuery UI。 Struts2中的单选按钮标签 在Struts2中,单选按钮通过&l…

    Java 2023年5月20日
    00
  • Java中的可变参数常见用法实例总结

    Java中的可变参数常见用法实例总结 什么是可变参数 Java中的可变参数是在方法参数列表中加上省略号(…)来实现的,可变参数可以接收任意数量的参数,而不需要在方法定义时指定参数个数。 基本语法如下: public static void method(Object… args) { // … } 常见用法 1. 打印日志 在写Java代码时,我…

    Java 2023年5月26日
    00
  • 在Java代码中解析html,获取其中的值方法

    要在Java代码中解析html,获取其中的值,可以使用Jsoup这个第三方开源库。下面是使用Jsoup的步骤: 第一步:导入Jsoup库 使用Maven导入依赖: <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId…

    Java 2023年5月26日
    00
  • 超详细解释Java反射

    下面我将为你详细讲解Java反射的完整攻略,并提供两个示例说明。 什么是Java反射? Java反射是指在运行时动态获取类的信息以及动态调用类的方法或属性的能力。通过反射,我们可以在不知道类名的情况下获取到类的信息,并在运行时动态创建对象,调用方法和查询属性等操作,极大地提高了程序的灵活性和可扩展性。 如何使用Java反射? Java反射的主要操作类为jav…

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