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

 

相关文章
|
1月前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
31 1
|
1月前
|
Java
java中替换文件内容
java中替换文件内容
14 1
|
1月前
|
Java
Java输入输出
Java输入输出
13 0
|
1月前
|
Java
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
10 0
|
1月前
|
Java
java程序导出堆文件
java程序导出堆文件
|
1月前
|
SQL Oracle Java
sql文件批处理程序-java桌面应用
sql文件批处理程序-java桌面应用
25 0
|
1月前
|
存储 Java
Java输入输出
Java输入输出
|
5天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
19小时前
|
存储 前端开发 Java
Java实现文件分片上传
Java实现文件分片上传
4 0
|
13天前
|
存储 Java
Java输入输出:解释一下序列化和反序列化。
Java中的序列化和反序列化是将对象转换为字节流和反之的过程。ObjectOutputStream用于序列化,ObjectInputStream则用于反序列化。示例展示了如何创建一个实现Serializable接口的Person类,并将其序列化到文件,然后从文件反序列化回Person对象。
24 5