浅谈Java中File文件的创建以及读写

浅谈Java中File文件的创建以及读写

在Java中,我们可以使用File类同时实现文件的创建和读写操作。下面将详细介绍File类的相关操作。

创建File文件

我们可以通过File类创建文件,具体代码如下:

import java.io.*;

public class CreateFile {
    public static void main(String[] args) throws IOException {
        File file = new File("test.txt");
        if (!file.exists()) {
            file.createNewFile();
            System.out.println("文件已创建");
        } else {
            System.out.println("文件已存在");
        }
    }
}

上述代码中,我们首先利用File类创建一个文件对象,接着判断文件是否存在,如果不存在就使用createNewFile方法创建文件。当文件创建成功时,会输出“文件已创建”;如果文件已经存在,则会输出“文件已存在”。

读写File文件

接下来,我们来看如何读写File文件。我们分别介绍使用字符流和字节流的方式。

字符流读写File文件

我们可以使用字符流来读写File文件,具体代码如下:

import java.io.*;

public class WriteFile {
    public static void main(String[] args) {
        File file = new File("test.txt");
        try {
            FileWriter fw = new FileWriter(file, true);
            fw.write("Hello World!");
            fw.flush();
            fw.close();

            FileReader fr = new FileReader(file);
            char[] cbuf = new char[1024];
            int length = 0;
            while ((length = fr.read(cbuf)) != -1) {
                System.out.println(new String(cbuf, 0, length));
            }
            fr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先利用File类创建一个文件对象,并使用FileWriter类的构造方法来创建一个文件写入流。接着,我们使用write方法将一段字符串写入文件中,最后利用flush方法刷新流并将缓冲区中的数据写入文件。关闭文件输出流后,我们再创建一个文件输入流FileReader并使用read方法读取文件中的数据。最后输出读取的字符串。由于字符流对中文字符的支持较好,因此我们在读取文件的时候可以直接使用char类型的数组。

字节流读写File文件

我们也可以使用字节流来读写File文件,如下所示:

import java.io.*;

public class WriteFile {
    public static void main(String[] args) {
        File file = new File("test.txt");
        try {
            FileOutputStream fos = new FileOutputStream(file, true);
            String str = "Hello World!";
            fos.write(str.getBytes());
            fos.flush();
            fos.close();

            FileInputStream fis = new FileInputStream(file);
            byte[] buf = new byte[1024];
            int length = 0;
            while ((length = fis.read(buf)) != -1) {
                System.out.println(new String(buf, 0, length));
            }
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们同样是利用File类创建一个文件对象,并使用FileOutputStream类的构造方法创建一个文件输出流。接着,我们将字符串Hello World!转换成字节数组类型,并使用write方法将数据写入文件中。关闭文件输出流后,我们再创建一个文件输入流FileInputStream并使用read方法读取文件中的数据。最后输出读取的字符串。由于字节流对中文字符的支持不如字符流,因此在读取文件时需要不断将读取的字节转换成字符。

以上便是关于Java中File文件的创建以及读写的完整攻略,代码已经包含两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈Java中File文件的创建以及读写 - Python技术站

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

相关文章

  • 常见的垃圾收集器算法有哪些?

    常见的垃圾收集器算法有哪些? 在大部分编程语言中,动态内存分配是必不可少的。为了防止内存泄漏,需要进行垃圾回收(Garbage Collection,简称GC),即在进行垃圾回收时收集并释放不再需要使用的存储器资源,在内存使用过多而导致程序出现异常时,垃圾回收是很重要的。而垃圾回收主要有2类算法 — 标记-清扫(Mark and Sweep)和复制式(Cop…

    Java 2023年5月10日
    00
  • Springboot+SpringSecurity+JWT实现用户登录和权限认证示例

    让我为您详细讲解一下“Springboot+SpringSecurity+JWT实现用户登录和权限认证示例”的攻略。 首先,需要安装以下工具: Java开发环境 Maven构建工具 然后,我们需要按照以下步骤进行实现: 1.添加依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.spring…

    Java 2023年5月20日
    00
  • JS实现的JSON序列化操作简单示例

    下面我来为你讲解“JS实现的JSON序列化操作简单示例”的完整攻略。 一、JSON序列化简介 JSON序列化是将JavaScript对象转换为JSON字符串的过程,也可以将JSON字符串转换为JavaScript对象。在实际开发中,JSON序列化是很常见的一个操作,尤其是在前后端数据交互时。 二、JSON.stringify方法详解 在JavaScript中…

    Java 2023年5月26日
    00
  • MyBatisPlus的简介及案例详解

    MyBatisPlus的简介及案例详解 MyBatisPlus简介 MyBatisPlus是一个基于MyBatis的增强工具库,通过简化开发、提高效率的方式来增强MyBatis的功能。MyBatisPlus提供了很多实用的功能,包括但不限于分页、逻辑删除、自动填充、注入器、代码生成器等等。 MyBatisPlus案例详解 示例1:使用分页功能 MyBatis…

    Java 2023年5月20日
    00
  • Java开发环境jdk 1.8安装配置方法(Win7 64位系统/windows server 2008)

    Java开发环境jdk 1.8安装配置方法(Win7 64位系统/windows server 2008) 1. 下载JDK 1.8安装文件 在Java官网下载页面,下载适合自己操作系统的JDK 1.8安装文件,一般情况下我们选用x64版。 文件下载完成后,双击打开文件,按照安装向导完成JDK 1.8的安装过程。 2. 配置JDK环境变量 进入“计算机”属性…

    Java 2023年5月24日
    00
  • 如何利用Retrofit+RxJava实现网络请求的异常处理

    下面就来详细讲解“如何利用Retrofit+RxJava实现网络请求的异常处理”的完整攻略,包含以下几个步骤: 1. 在请求类中定义异常类 在进行网络请求时,有可能会发生一些异常,例如网络连接失败、服务端返回错误等。为了统一管理和处理这些异常,我们可以在请求类中定义一个异常类: public class RequestException extends Ru…

    Java 2023年5月27日
    00
  • 解析Spring Mvc Long类型精度丢失问题

    引言 在Spring Mvc中,我们常常遇到处理Long类型数据的问题。但是在处理过程中,会发现有时候Long类型数据的精度会出现丢失的问题。本文将介绍如何解析Spring Mvc处理Long类型精度丢失问题,希望对大家有所帮助。 问题的根源 在Spring Mvc中,当处理Long类型数据时,会自动将字符串类型的参数转换为Long类型。但是在处理过程中,由…

    Java 2023年5月26日
    00
  • java图片验证码生成教程详解

    Java图片验证码生成教程详解 本文将介绍Java中生成图片验证码的方法和过程,包含以下主要内容:- 确定验证码的基本结构和样式- 利用Java的Graphics2D类绘制验证码- 将验证码转换成图片格式并输出 1. 确定验证码的基本结构和样式 验证码通常包括随机生成的字符、字母或数字等,可以有不同的字体、颜色、背景等样式。在本教程中,我们将生成一个4位随机…

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