Java.IO:读写二进制文件与流的使用示例

需积分: 0 8 下载量 12 浏览量 更新于2024-08-18 收藏 334KB PPT 举报
"这篇文档主要介绍了Java中的IO操作,特别是如何读写二进制文件,以及涉及的相关概念和类的使用。" 在Java编程中,`java.io`包提供了广泛的类和接口,用于处理输入输出(I/O)操作,包括文件操作、流处理等。这个包中的核心类如`File`, `FileInputStream`, `FileOutputStream`, `DataInputStream`, `DataOutputStream`等都在文件操作和数据传输中起着关键作用。 文件操作通常涉及`File`类。`File`类代表了操作系统中的文件或目录,并提供了多种方法来获取和设置文件或目录的属性,如是否存在、是否为文件或目录、名称、路径、绝对路径、最后修改时间和文件大小等。例如,可以通过`exists()`检查文件是否存在,通过`isFile()`和`isDirectory()`判断是文件还是目录,`getName()`获取文件名,`getPath()`和`getAbsolutePath()`获取路径,`lastModified()`得到最后修改时间,以及`length()`返回文件大小。 当涉及到数据的读写时,Java使用了流的概念。流是一系列数据的流动,可以是字符或字节。Java提供了两种基本类型的流:`InputStream`和`OutputStream`,它们分别用于读取和写入数据。这两个接口有多个子类,比如`FileInputStream`和`FileOutputStream`,分别用于从文件读取和向文件写入数据。 在读取和写入二进制文件时,我们通常会使用`DataInputStream`和`DataOutputStream`。这两个类提供了读写基本类型数据(如`int`, `byte`, `float`, `double`等)的能力。在给定的代码段中,展示了如何使用`DataInputStream`从已有的二进制文件`ReadAndWriteBinaryFile.class`读取数据,然后使用`DataOutputStream`将这些数据写入新的文件`temp.class`。这里的`read()`方法读取一个字节并返回,直到遇到文件末尾(返回-1)。而`write(temp)`则将读取到的字节写入输出流。 此外,Java流还被分为字节流和字符流,字节流处理原始的字节数据,而字符流处理Unicode字符。字节流包括`InputStream`和`OutputStream`家族,字符流则由`Reader`和`Writer`家族组成。在处理文本文件时,`BufferedReader`和`BufferedWriter`类是常用的,它们提供了缓冲区,可以提高读写效率。 Java的`java.io`包提供了一套强大的工具,用于进行文件操作和数据传输,无论是在处理文本还是二进制数据时,都有相应的类和接口可以方便地使用。