Java中的IO(Input/Output)和文件操作

简介: Java中的IO(Input/Output)和文件操作

Java中的IO(Input/Output)和文件操作主要包括以下内容:

  1. File类

    • java.io.File类用于表示文件和目录路径。它可以用来创建、删除、重命名文件或目录,以及检查文件或目录的存在性、大小、修改时间等属性。
  2. 目录操作

    • mkdir()方法用于创建单层目录。
    • mkdirs()方法用于创建多层目录,如果中间的目录不存在,会一并创建。
  3. 文件操作

    • createNewFile()方法用于创建新文件。
    • delete()方法用于删除文件或目录。
    • renameTo()方法用于重命名文件或目录。
    • exists()方法检查文件或目录是否存在。
    • isDirectory()isFile()方法分别检查是否为目录和文件。
    • length()方法返回文件的长度(字节数)。
    • lastModified()方法返回最后一次修改文件或目录的时间戳。
  4. IO流

    • Java IO流分为两类:字节流和字符流。
    • 字节流处理8位的字节数据,如InputStreamOutputStream及其子类。
    • 字符流处理16位的Unicode字符数据,如ReaderWriter及其子类。
  5. 文件读写

    • 读取文件通常使用FileReader(字符流)或BufferedReader(带缓冲的字符流)。
    • 写入文件通常使用FileWriter(字符流)或BufferedWriter(带缓冲的字符流)。
    • 读写字节数据可以使用FileInputStreamFileOutputStream

以下是一个简单的读写文件的例子:

import java.io.*;

public class FileExample {
   
    public static void main(String[] args) {
   
        String content = "Hello, World!";

        // Write to file
        try (FileWriter writer = new FileWriter("example.txt")) {
   
            writer.write(content);
        } catch (IOException e) {
   
            System.out.println("Error writing to file: " + e.getMessage());
        }

        // Read from file
        try (FileReader reader = new FileReader("example.txt")) {
   
            char[] buffer = new char[content.length()];
            reader.read(buffer);
            String readContent = new String(buffer);
            System.out.println("Read content: " + readContent);
        } catch (IOException e) {
   
            System.out.println("Error reading from file: " + e.getMessage());
        }
    }
}

这个例子中,首先使用FileWriter将字符串"Hello, World!"写入到名为"example.txt"的文件中,然后使用FileReader从该文件中读取内容,并打印出来。

注意,Java 7及以后版本引入了NIO.2(New I/O, version 2),提供了更高效的文件操作方式,包括使用Files类和Path接口进行文件和目录的操作,以及使用BufferedReaderBufferedWriter的替代品——try-with-resources语句来自动关闭资源,避免资源泄露。

相关文章
|
1天前
|
存储 Java
Java的`java.io`包包含多种输入输出类
Java的`java.io`包包含多种输入输出类。此示例展示如何使用`FileInputStream`从`input.txt`读取数据。首先创建`FileInputStream`对象,接着分配一个`byte`数组存储流中的数据。通过`read()`方法读取数据,然后将字节数组转换为字符串打印。最后关闭输入流释放资源。`InputStream`是抽象类,此处使用其子类`FileInputStream`。其他子类如`ByteArrayInputStream`、`ObjectInputStream`和`BufferedInputStream`各有特定用途。
7 1
|
2天前
|
存储 Java
java IO接口(Input)用法
【5月更文挑战第1天】Java的`java.io`包包含多种输入输出类。此示例展示了如何使用`FileInputStream`从`input.txt`读取数据。首先创建`FileInputStream`对象,接着创建一个字节数组存储读取的数据,调用`read()`方法将文件内容填充至数组。然后将字节数组转换为字符串并打印,最后关闭输入流。注意,`InputStream`是抽象类,此处使用其子类`FileInputStream`。其他子类如`ByteArrayInputStream`、`ObjectInputStream`和`BufferedInputStream`各有特定用途。
9 2
|
3天前
|
存储 Java Linux
【Java EE】 文件IO的使用以及流操作
【Java EE】 文件IO的使用以及流操作
|
4天前
|
存储 Java 测试技术
Java基础IO总结(下)
Java基础IO总结(下)
10 0
|
4天前
|
存储 Java
Java基础IO总结(上)
Java基础IO总结(上)
10 0
|
3天前
|
Java 程序员 开发者
深入理解Java并发编程:线程同步与锁机制
【4月更文挑战第30天】 在多线程的世界中,确保数据的一致性和线程间的有效通信是至关重要的。本文将深入探讨Java并发编程中的核心概念——线程同步与锁机制。我们将从基本的synchronized关键字开始,逐步过渡到更复杂的ReentrantLock类,并探讨它们如何帮助我们在多线程环境中保持数据完整性和避免常见的并发问题。文章还将通过示例代码,展示这些同步工具在实际开发中的应用,帮助读者构建对Java并发编程深层次的理解。
|
3天前
|
Java
Java并发编程:深入理解线程池
【4月更文挑战第30天】本文将深入探讨Java并发编程中的一个重要主题——线程池。我们将从线程池的基本概念入手,了解其工作原理和优势,然后详细介绍如何使用Java的Executor框架创建和管理线程池。最后,我们将讨论一些高级主题,如自定义线程工厂和拒绝策略。通过本文的学习,你将能够更好地理解和使用Java的线程池,提高你的并发编程能力。
|
23小时前
|
存储 缓存 前端开发
Java串口通信技术探究3:RXTX库线程 优化系统性能的SerialPortEventListener类
Java串口通信技术探究3:RXTX库线程 优化系统性能的SerialPortEventListener类
9 3
|
2天前
|
存储 安全 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第1天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将详细分析线程安全问题的根源,以及如何通过合理的设计和编码实践来避免常见的并发问题。同时,我们还将探讨如何在保证线程安全的前提下,提高程序的并发性能,包括使用高效的同步机制、减少锁的竞争以及利用现代硬件的并行能力等技术手段。