Java IO基础与实用操作详解

3星 · 超过75%的资源 需积分: 9 1 下载量 107 浏览量 更新于2024-09-13 收藏 50KB TXT 举报
Java I/O (Input/Output)是编程中至关重要的部分,它负责在程序与计算机硬件之间进行数据的读写操作,特别是在处理文件、网络通信以及数据存储时。本文将对Java IO的基本概念、类和方法进行总结,并通过实例演示其核心知识点。 首先,让我们理解Java IO的基础结构。Java提供了一系列的类来处理输入输出,如`java.io.File`、`java.io.FileInputStream`、`java.io.FileOutputStream`等。`File`类代表一个文件或目录,用于表示磁盘上的路径。在Java中,`File`类可以用来创建、删除、重命名文件,以及检查文件或目录是否存在。 1. `File`类的实例化通常通过`new File()`构造函数完成,如在第一个示例中,创建一个新的空文件`hello.txt`: ```java File f = new File("D:\\hello.txt"); try { f.createNewFile(); } catch (Exception e) { e.printStackTrace(); } ``` 这段代码创建了一个新的文件,如果文件不存在,则会尝试创建。如果文件已存在,`createNewFile()`方法会抛出异常。 2. Java提供了两个特殊的方法`File.separator`和`File.pathSeparator`,用于处理不同操作系统之间的路径分隔符。`File.separator`返回当前系统的文件路径分隔符,如`\`(Windows)或`/`(Linux),而`File.pathSeparator`则用于字符串拼接时连接路径元素。例如: ```java System.out.println(File.separator); // 输出:\ 或 / System.out.println(File.pathSeparator); // 输出:; 或 : ``` 这两个方法在处理跨平台路径时非常有用。 3. 当我们不确定文件路径的绝对路径时,可以使用`+`运算符结合`File.separator`,如第三个示例中的`fileName`变量。这样可以在不同操作系统上正确地构建路径: ```java String fileName = "D:" + File.separator + "hello.txt"; ``` 这里确保了在Windows或Linux环境下都能正确解析路径。 4. 文件操作中,如果文件已经存在,我们可以使用`exists()`方法检查其是否存在,然后用`delete()`方法删除。例如: ```java if (f.exists()) { f.delete(); } else { System.out.println("文件不存在"); } ``` 这用于实现文件的删除逻辑,但在实际应用中需谨慎使用,避免误删。 Java I/O并非仅仅局限于文件操作,还涉及网络I/O(如`java.net.Socket`)和流处理(如`InputStream`和`OutputStream`)。这些内容虽然不在给定的部分,但同样重要,尤其是在开发服务器端应用程序、网络通信或处理二进制数据时。 掌握Java I/O基础知识对于任何Java开发者来说都是必不可少的。通过理解并熟练运用这些类和方法,开发者可以有效地处理数据的输入输出,满足各种应用场景的需求。
2013-08-31 上传
java中的IO操作总结(四) 前面已经把java io的主要操作讲完了 这一节我们来说说关于java io的其他内容 Serializable序列化 实例1:对象的序列化 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; @SuppressWarnings("serial") //一个类要想实现序列化则必须实现Serializable接口 class Person implements Serializable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return "Name:" + this.name + ", Age:" + this.age; } } public class Demo { public static void main(String[] args) { String path = File.separator + "home" + File.separator + "siu" + File.separator + "work" + File.separator + "demo.txt"; Person p1 = new Person("zhangsan",12); Person p2 = new Person("lisi",14); //此处创建文件写入流的引用是要给ObjectOutputStream的构造函数玩儿 FileOutputStream fos = null; ObjectOutputStream oos = null; try { fos = new FileOutputStream(path); oos = new ObjectOutputStream(fos); //这里可以写入对象,也可以写入其他类型数据 oos.writeObject(p1); oos.writeObject(p2); } catch (IOException e) { e.printStackTrace(); } finally { try { oos.close(); } catch (IOException e) { e.printStackTrace(); } } } } 解压密码 www.jiangyea.com