使用Java读取文件

一、Java文件读取基础

使用Java读取文件是Java开发中常用的功能。Java提供了多种方式用于读取文件内容,常见的有FileInputStream、FileReader、BufferedReader等。

其中,FileInputStream和FileReader都是基于文件字节流的读取方式。BufferedReader则是基于字符缓冲区的读取方式,可以提高读取效率。

以下是使用FileInputStream读取文件内容的示例代码:

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

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

上述代码中,首先创建File对象,并在try-with-resources语句中创建FileInputStream对象。通过FileInputStream对象读取文件内容,将读取的字节存储在byte数组中,并通过String构造器将byte数组转换为字符串。

二、使用BufferedReader读取文件

使用BufferedReader读取文件内容相比FileInputStream和FileReader更加高效,因为它可以一次读取多个字符并将它们缓存在内存中。

使用BufferedReader读取文件内容的示例代码如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample {
    public static void main(String[] args) {
        File file = new File("file.txt");
        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先创建File对象。在try-with-resources语句中创建BufferedReader对象,同时创建FileReader对象以逐行读取文件内容,并将读取的内容存储在line字符串变量中。

三、使用Java NIO读取文件

Java NIO(New IO)是Java SE 1.4中引入的一组新的Input/Output(I/O)API,可以提供高速的、面向缓冲的I/O操作。

使用Java NIO读取文件内容的示例代码如下:

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class ReadFileExample {
    public static void main(String[] args) {
        String fileName = "file.txt";
        try (Stream stream = Files.lines(Paths.get(fileName), StandardCharsets.UTF_8)) {
            stream.forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,通过Paths.get方法获取文件路径。在try-with-resources语句中创建Stream对象,通过Files.lines方法读取文件内容,将读取的每一行直接输出。

四、读取二进制文件

除了常规的文本文件,Java也可以读取二进制文件。读取二进制文件时,需要使用字节流读取器。

读取二进制文件的示例代码如下:

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

public class ReadFileExample {
    public static void main(String[] args) {
        File file = new File("file.bin");
        try (InputStream is = new FileInputStream(file)) {
            byte[] buffer = new byte[(int) file.length()];
            is.read(buffer);
            for (byte b : buffer) {
                System.out.print(b + " ");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先创建File对象。在try-with-resources语句中创建FileInputStream对象以读取二进制文件内容。读取的字节存储在byte数组中,并逐个输出每个字节值。

五、使用Scanner读取文件

Java还提供了Scanner类,可以用于读取文件中的各种类型的数据,包括文本和二进制数据。

使用Scanner读取文件内容的示例代码如下:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadFileExample {
    public static void main(String[] args) {
        File file = new File("file.txt");
        try (Scanner scanner = new Scanner(file)) {
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先创建File对象。在try-with-resources语句中创建Scanner对象以逐行读取文件内容,并将读取的每一行输出。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/151058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-10 01:11
下一篇 2024-11-10 01:11

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常问题的解决

    本文旨在解决vue下载无后缀名的文件被加上后缀.txt,有后缀名的文件下载正常的问题,提供完整的代码示例供参考。 一、分析问题 首先,需了解vue中下载文件的情况。一般情况下,我们…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29

发表回复

登录后才能评论