java实现文件读写与压缩实例

Java实现文件读写与压缩实例

文件读取

Java中可以通过File类和FileInputStream类来实现文件读取。其中,File类用于表示文件对象,而FileInputStream类用于读文件的数据流。

下面是一个简单的文件读取的示例代码,读取指定路径下的txt文件:

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

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

在这个例子中,我们首先创建了一个File对象,然后通过这个对象创建了一个FileInputStream对象。接着,我们使用available()方法获取了文件的长度,然后创建了一个字节数组作为缓冲区。

最后,我们使用read(buffer)方法将文件的内容读取到缓冲区中,并使用String(byte[])构造函数将缓冲区中的字节转换为字符串,从而输出了文件的内容。

文件写入

Java中可以通过File类和FileOutputStream类来实现文件写入。其中,File类用于表示文件对象,而FileOutputStream类用于写文件的数据流。

下面是一个简单的文件写入的示例代码,将指定字符串写入到指定路径下的txt文件:

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

public class FileWriter {
    public static void main(String[] args) {
        try {
            String content = "Hello, World!";
            File file = new File("example.txt");
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(content.getBytes());
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个例子中,我们首先创建了一个字符串作为文件内容,然后创建了一个File对象,最后通过这个对象创建了一个FileOutputStream对象。

接着,我们使用write(byte[])方法将字符串的字节表示写入到文件中。

文件压缩

Java中可以通过ZipOutputStream类来实现文件压缩。ZipOutputStream类是OutputStream的一种子类,可以将数据压缩成ZIP格式。

下面是一个简单的文件压缩的示例代码,将指定路径下的两个txt文件压缩成一个zip文件:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class FileCompressor {
    public static void main(String[] args) {
        try {
            FileOutputStream fos = new FileOutputStream("example.zip");
            ZipOutputStream zos = new ZipOutputStream(fos);
            zipFile("example1.txt", zos);
            zipFile("example2.txt", zos);
            zos.closeEntry();
            zos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void zipFile(String fileName, ZipOutputStream zos) throws IOException {
        FileInputStream fis = new FileInputStream(fileName);
        ZipEntry zipEntry = new ZipEntry(fileName);
        zos.putNextEntry(zipEntry);
        byte[] bytes = new byte[1024];
        int length;
        while ((length = fis.read(bytes)) >= 0) {
            zos.write(bytes, 0, length);
        }
        fis.close();
    }
}

在这个例子中,我们首先创建了一个ZipOutputStream对象,并向其中写入两个文件。首先,我们调用了putNextEntry(ZipEntry)方法创建了一个ZipEntry对象,并将其作为参数传递给这个方法,表示我们要开始写入一个新的压缩文件。然后,我们读取文件的内容,并将其写入到压缩流中。

最后,我们再次调用了closeEntry()方法,表示该文件写入结束。最后,我们调用了close()方法关闭了压缩流。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现文件读写与压缩实例 - Python技术站

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

相关文章

  • Spring源码:Bean生命周期(三)

    前言 在之前的文章中,我们已经对 bean 的准备工作进行了讲解,包括 bean 定义和 FactoryBean 判断等。在这个基础上,我们可以更加深入地理解 getBean 方法的实现逻辑,并在后续的学习中更好地掌握createBean 方法的实现细节。 getBean用法 讲解getBean方法之前,我们先来看看他有几种常见的用法: // 创建一个Spr…

    Java 2023年5月4日
    00
  • springboot整合springsecurity与mybatis-plus的简单实现

    那么让我们来探讨一下如何实现“springboot整合springsecurity与mybatis-plus的简单实现”,包含以下步骤: 1.创建一个springboot项目,添加相关依赖 为了实现该功能,我们首先需要创建一个springboot项目,并添加所需的依赖项。在pom.xml文件中添加以下依赖项: <dependency> <g…

    Java 2023年5月20日
    00
  • 微信公众号服务号推送模板消息设置方法(后端java)

    下面是详细的攻略: 微信公众号服务号推送模板消息设置方法 开启模板消息功能 要使用模板消息功能,首先需要在公众号后台开启该功能。具体操作步骤如下: 登录公众号后台,在左侧菜单栏中选择“开发者工具”。 点击页面上方的“接口权限”选项卡,找到“模板消息”并开启该功能。 开启模板消息功能后,需要到“模板消息”选项中添加至少一个消息模板。在添加模板时需要提供模板的标…

    Java 2023年5月20日
    00
  • java利用正则表达式处理特殊字符的方法实例

    当处理含有特殊字符的字符串时,我们通常会使用正则表达式来进行匹配和替换。而Java提供了了解处理特殊字符的方法,并且使用正则表达式来匹配和替换字符串。下面是详细的步骤: 1. 使用转义字符 当需要处理特殊字符(例如:. 、^、$、+、*、?、{、}、(、)、|、\、[、]等)时,需要借助转义字符来进行正则表达式的编写。 示例: String input = …

    Java 2023年5月27日
    00
  • 简单总结Java IO中stream流的使用方法

    下面是“简单总结Java IO中stream流的使用方法”的完整攻略: 1. Java IO中的Stream流 Java IO(Input/Output)是指Java语言中的输入输出流操作,用于读取和写入数据。在Java IO中,输入输出是用Stream(流)的方式进行的。Stream流提供了InputSteam和OutputStream两个抽象类,它们是所…

    Java 2023年5月26日
    00
  • JSP自定义标签简单入门教程

    下面我来为你详细讲解“JSP自定义标签简单入门教程”的完整攻略。 一、什么是JSP自定义标签 JSP自定义标签,即JSP Custom Tag,是指基于JSP技术实现的自定义标签,具有JSP标准标签库(JSTL)无法满足特定需求的功能。简单来说,就是我们可以自己定义标签,然后在JSP页面中使用这些标签。 二、JSP自定义标签的实现方式 JSP自定义标签的实现…

    Java 2023年6月15日
    00
  • java实现向有序数组中插入一个元素实例

    当需要向有序数组中插入一个新的元素时,我们可以使用以下步骤: 步骤 1:创建有序数组 首先,我们需要创建一个已经排好序的数组。可以使用Java中的数组来完成,或者也可以使用List等其他数据结构。 步骤 2:确定插入位置 在插入新元素之前,我们需要确定新元素应该插入的位置。由于数组已经排好序,我们可以使用二分查找来找到插入位置,使用Java提供的Arrays…

    Java 2023年5月26日
    00
  • servlet的url-pattern匹配规则详细描述(小结)

    当用tomcat作为web服务器时,在web.xml文件里配置servlet时需要指定url-pattern,它表示客户端请求的url与该servlet匹配的规则。servlet的url-pattern支持多种方式匹配,如下所示。 精确匹配 servlet的url-pattern可以配置具体的url,例如: <servlet> <servl…

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