【Java基础教程】(四十四)IO篇 · 上:解析Java文件操作——File类、字节流与字符流,分析字节输出流、字节输入流、字符输出流和字符输入流的区别
发布人:shili8
发布时间:2025-02-22 22:25
阅读次数:0
**Java基础教程**
**(四十四) IO篇 · 上**
**解析Java文件操作——File类、字节流与字符流**
在Java编程中,文件操作是非常重要的一部分。Java提供了丰富的API来处理文件相关的任务。在本文中,我们将重点讨论Java中的`File`类以及字节流和字符流。
### File类`File`类是Java中用于表示文件或目录的基本类。它提供了一系列方法来操作文件和目录,例如创建、删除、重命名等。
javaimport java.io.File; public class FileExample { public static void main(String[] args) { // 创建一个新文件 File file = new File("test.txt"); if (file.createNewFile()) { System.out.println("文件创建成功!"); } else { System.out.println("文件已存在!"); } // 删除一个文件 if (file.delete()) { System.out.println("文件删除成功!"); } else { System.out.println("文件删除失败!"); } } }
### 字节流字节流是Java中用于读取或写入二进制数据的流。它提供了`InputStream`和`OutputStream`接口。
#### 字节输出流(ByteOutputStream)
字节输出流用于将数据写入一个文件或其他输出流。Java中的`FileOutputStream`类实现了这个接口。
javaimport java.io.File; import java.io.FileOutputStream; public class ByteOutputStreamExample { public static void main(String[] args) throws Exception { // 创建一个新文件 File file = new File("test.txt"); // 创建字节输出流 FileOutputStream fos = new FileOutputStream(file); // 写入数据 String data = "Hello, World!"; byte[] bytes = data.getBytes(); fos.write(bytes); fos.close(); System.out.println("数据写入成功!"); } }
#### 字节输入流(ByteInputStream)
字节输入流用于从一个文件或其他输入流中读取二进制数据。Java中的`FileInputStream`类实现了这个接口。
javaimport java.io.File; import java.io.FileInputStream; public class ByteInputStreamExample { public static void main(String[] args) throws Exception { // 创建一个新文件 File file = new File("test.txt"); // 创建字节输入流 FileInputStream fis = new FileInputStream(file); //读取数据 byte[] bytes = new byte[1024]; int len = fis.read(bytes); while (len != -1) { System.out.println(new String(bytes,0, len)); len = fis.read(bytes); } fis.close(); System.out.println("数据读取成功!"); } }
### 字符流字符流是Java中用于读取或写入文本数据的流。它提供了`Reader`和`Writer`接口。
#### 字符输出流(CharacterOutputStream)
字符输出流用于将文本数据写入一个文件或其他输出流。Java中的`FileWriter`类实现了这个接口。
javaimport java.io.File; import java.io.FileWriter; public class CharacterOutputStreamExample { public static void main(String[] args) throws Exception { // 创建一个新文件 File file = new File("test.txt"); // 创建字符输出流 FileWriter writer = new FileWriter(file); // 写入数据 String data = "Hello, World!"; writer.write(data); writer.close(); System.out.println("数据写入成功!"); } }
#### 字符输入流(CharacterInputStream)
字符输入流用于从一个文件或其他输入流中读取文本数据。Java中的`FileReader`类实现了这个接口。
javaimport java.io.File; import java.io.FileReader; public class CharacterInputStreamExample { public static void main(String[] args) throws Exception { // 创建一个新文件 File file = new File("test.txt"); // 创建字符输入流 FileReader reader = new FileReader(file); //读取数据 char[] chars = new char[1024]; int len = reader.read(chars); while (len != -1) { System.out.println(new String(chars,0, len)); len = reader.read(chars); } reader.close(); System.out.println("数据读取成功!"); } }
### 总结在本文中,我们讨论了Java中的`File`类以及字节流和字符流。我们通过实例代码示例来展示了如何使用这些API进行文件操作。