Java中文件与输入输出

简介: Java中文件与输入输出

在Java中,文件与输入输出(I/O)操作是编程中经常需要处理的任务之一。Java提供了一套丰富的类和方法来支持文件的读取、写入以及标准输入输出的操作。下面是一些关于Java文件与输入输出操作的基本概念和示例。

文件操作

文件读取

Java中可以使用java.io.File类来操作文件,结合java.io.FileInputStreamjava.io.FileReaderjava.nio.file.Files等类来读取文件内容。

示例:

java复制代码

 

import java.io.File;

 

import java.io.FileReader;

 

import java.io.BufferedReader;

 

import java.io.IOException;

 

 

 

public class FileReadingExample {

 

public static void main(String[] args) {

 

File file = new File("example.txt");

 

FileReader fr = null;

 

BufferedReader br = null;

 

 

 

try {

 

fr = new FileReader(file);

 

br = new BufferedReader(fr);

 

String line;

 

while ((line = br.readLine()) != null) {

 

System.out.println(line);

 

}

 

} catch (IOException e) {

 

e.printStackTrace();

 

} finally {

 

try {

 

if (br != null) br.close();

 

if (fr != null) fr.close();

 

} catch (IOException ex) {

 

ex.printStackTrace();

 

}

 

}

 

}

 

}

文件写入

可以使用java.io.FileOutputStreamjava.io.FileWriter等类来写入文件内容。

示例:

java复制代码

 

import java.io.File;

 

import java.io.FileWriter;

 

import java.io.IOException;

 

 

 

public class FileWritingExample {

 

public static void main(String[] args) {

 

File file = new File("output.txt");

 

FileWriter fw = null;

 

 

 

try {

 

fw = new FileWriter(file);

 

fw.write("Hello, World!");

 

} catch (IOException e) {

 

e.printStackTrace();

 

} finally {

 

try {

 

if (fw != null) fw.close();

 

} catch (IOException ex) {

 

ex.printStackTrace();

 

}

 

}

 

}

 

}

标准输入输出

Java使用System.in作为标准输入流,System.outSystem.err作为标准输出流和错误输出流。通常与java.io.BufferedReaderjava.io.PrintStreamjava.io.PrintWriter结合使用。

示例:从控制台读取输入:

java复制代码

 

import java.io.BufferedReader;

 

import java.io.InputStreamReader;

 

import java.io.IOException;

 

 

 

public class ConsoleInputExample {

 

public static void main(String[] args) {

 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

 

System.out.print("Enter your name: ");

 

String name = null;

 

try {

 

name = br.readLine();

 

System.out.println("Hello, " + name + "!");

 

} catch (IOException e) {

 

e.printStackTrace();

 

}

 

}

 

}

使用NIO(New I/O)

从Java NIO(New I/O)开始,Java引入了新的I/O API,提供了更高效的I/O处理方式,如通道(Channel)、缓冲区(Buffer)等。这些API通常用于处理大量数据或需要高性能I/O的场景。

示例:使用NIO读取文件:

java复制代码

 

import java.io.IOException;

 

import java.nio.ByteBuffer;

 

import java.nio.channels.FileChannel;

 

import java.nio.file.Paths;

 

import java.nio.file.StandardOpenOption;

 

import java.nio.charset.StandardCharsets;

 

 

 

public class NIOFileReadingExample {

 

public static void main(String[] args) {

 

try (FileChannel fileChannel = new FileInputStream(Paths.get("example.txt").toFile())

 

.getChannel()) {

 

ByteBuffer buffer = ByteBuffer.allocate(1024);

 

while (fileChannel.read(buffer) > 0) {

 

buffer.flip(); // 准备从缓冲区读取数据

 

while (buffer.hasRemaining()) {

 

System.out.print((char) buffer.get());

 

}

 

buffer.clear(); // 清除缓冲区,准备下一次读取

 

}

 

} catch (IOException

 

相关文章
|
3月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
112 9
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
130 2
|
11天前
|
存储 算法 Java
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
|
4月前
|
Java
Java“解析时到达文件末尾”解决
在Java编程中,“解析时到达文件末尾”通常指在读取或处理文件时提前遇到了文件结尾,导致程序无法继续读取所需数据。解决方法包括:确保文件路径正确,检查文件是否完整,使用正确的文件读取模式(如文本或二进制),以及确保读取位置正确。合理设置缓冲区大小和循环条件也能避免此类问题。
602 2
|
2月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
218 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
117 34
|
28天前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
36 0
|
3月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
72 3
|
3月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
3月前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
290 2

热门文章

最新文章