五年开发,你还记得Java基础代码中的文件I/O操作么?

五年开发,你还记得Java基础代码中的文件I/O操作么?文件 I O 操作作为 Java 开发中的一个重要组成部分 主要负责 Java 代码中对于文件的读写操作 可能对于一些长时间不使用 Java 文件 API 的开发者来说早都忘记了相关的操作 下面我们就来详细介绍一下 Java 中的各种文件 I O 操作

欢迎大家来到IT世界,在知识的湖畔探索吧!

五年开发,你还记得Java基础代码中的文件I/O操作么?



欢迎大家来到IT世界,在知识的湖畔探索吧!

文件I/O操作作为Java开发中的一个重要组成部分,主要负责Java代码中对于文件的读写操作,可能对于一些长时间不使用Java文件API的开发者来说早都忘记了相关的操作,下面我们就来详细介绍一下Java中的各种文件I/O操作。

Java文件I/O的基本概念

对于文件的I/O操作无非就是完成如下的两个操作。

  • 读取文件:将文件内容从磁盘加载到程序中。
  • 写入文件:将程序中的数据保存到磁盘文件中。

而在Java中对于文件的I/O操作一般又可以分为两种工作模式,如下所示。

  • 字节流(InputStream 和 OutputStream):处理二进制数据,例如图片、视频等。
  • 字符流(Reader 和 Writer):处理文本数据,例如 .txt 文件。

下面我们就来回忆一下Java中的那些常用的文件操作类。

文件IO的常用类

在Java中提供了很多的操作类来进行文件处理操作,而这些文件操作类一般都包括在java.io和java.nio.file包中,如下所示,展示了一些常用的文件操作类。

File类

File类表示一个文件或者是一个文件目录,这个类只是对文件或者是文件目录的抽象处理,并不直接执行对文件内容的读写操作,而是用来完成如下的一些功能。

  • 创建新文件
  • 删除文件
  • 获取文件信息

代码如下所示。

import java.io.File; import java.io.IOException; public class FileExample { public static void main(String[] args) { File file = new File("example.txt"); try { if (file.createNewFile()) { System.out.println("文件已创建:" + file.getName()); } else { System.out.println("文件已存在。"); } } catch (IOException e) { System.out.println("创建文件时发生错误。"); e.printStackTrace(); } } }

欢迎大家来到IT世界,在知识的湖畔探索吧!

字节流类

在Java中对于文件操作的字节流类被分为了FileInputStream 和 FileOutputStream,主要就是用来通过以字节流的方式来操作文件。如下所示,通过FileInputStream 和 FileOutputStream来实现文件的复制操作。

欢迎大家来到IT世界,在知识的湖畔探索吧!import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class ByteStreamExample { public static void main(String[] args) { try (FileInputStream fis = new FileInputStream("source.txt"); FileOutputStream fos = new FileOutputStream("destination.txt")) { int data; while ((data = fis.read()) != -1) { fos.write(data); } System.out.println("文件复制完成!"); } catch (IOException e) { e.printStackTrace(); } } }

字符流类

当然除了字节流之外,在Java中还提供了字符流操作类,如下所示,常见的字符流文件操作类有如下两个FileReader 和 FileWriter,主要的作用就是以字符流的方式实现文本文件读写操作。如下所示实现读取文件并写入另一个文件中。

import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CharStreamExample { public static void main(String[] args) { try (FileReader reader = new FileReader("input.txt"); FileWriter writer = new FileWriter("output.txt")) { int data; while ((data = reader.read()) != -1) { writer.write(data); } System.out.println("文本文件复制完成!"); } catch (IOException e) { e.printStackTrace(); } } }

使用缓冲流提高效率

在文件流操作的过程中,我们可以通过数据缓冲区来提升对于文件的读写效率,如下所示。是日常开发中常见的一些文件缓冲类和操作介绍。

  • BufferedReader 和 BufferedWriter:用于高效处理字符数据。
  • BufferedInputStream 和 BufferedOutputStream:用于高效处理字节数据。

下面我们演示一下如何通过BufferedReader 和 BufferedWriter来实现文件的读写操作。

欢迎大家来到IT世界,在知识的湖畔探索吧!import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class BufferedStreamExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("input.txt")); BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) { String line; while ((line = reader.readLine()) != null) { writer.write(line); writer.newLine(); } System.out.println("文件内容已成功复制!"); } catch (IOException e) { e.printStackTrace(); } } }

java.nio.file 包中的文件操作

在Java7之后引入了NIO操作的文件操作包java.nio.file,提供了基于NIO模型的文件操作类,例如比较常用的Files和Paths类都是在这个包中。如下所示,我们通过一个小例子来看看如何通过NIO包中的类来读取整个的文件内容。

import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; public class NIOExample { public static void main(String[] args) { try { List<String> lines = Files.readAllLines(Paths.get("input.txt")); lines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }

我们也可以直接通过Files.copy()来实现文件的拷贝操作,如下所示。

欢迎大家来到IT世界,在知识的湖畔探索吧!import java.nio.file.Files; import java.nio.file.Paths; import java.io.IOException; public class NIOCopyExample { public static void main(String[] args) { try { Files.copy(Paths.get("source.txt"), Paths.get("destination.txt")); System.out.println("文件复制完成!"); } catch (IOException e) { e.printStackTrace(); } } }

文件IO的常见错误处理

在进行文件操作的时候无非就是文件找不到,文件操作异常读写异常等一些常见的异常处理。如下所示。

  • 文件未找到异常:FileNotFoundException
  • 权限不足异常:SecurityException
  • IO 异常:IOException

在实现文件操作的时候,我们需要根据文件类型选择合适的文件操作流来实现文件操作,提供缓冲流来提升文件的读写性能,再加上完整的文件异常检查方案,就可以保证高效的文件IO操作。

总结

在Java中提供了很多的文件处理的I/O操作类,从传统的File类和流操作到现代的java.nio.file工具类都是非常好的文件操作支持,开发者可以根据具体的的操作来选择合适的实现方案,在实际开发中也是一样,可能长时间不使用某种技术,会对相关的技术实现有所忘记变得陌生,所以适当的时间回忆一下相关的基础操作,也是对自己能力的提升。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/99063.html

(0)
上一篇 2小时前
下一篇 2小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信