编写程序,创建一个包含指定元素个数的链表并保存在文件中,使用try-catch-finally完成对数组越界异常、IO异常的捕获与处理
时间: 2023-06-09 20:07:10 浏览: 92
好的,这是一个关于链表和异常处理的问题。首先,我们需要了解链表的基本概念和用法。链表是一种线性数据结构,用于存储一系列元素。它由一个节点序列组成,每个节点包含两部分:数据和指向下一个节点的指针。链表通常分为单向链表、双向链表和循环链表等类型。
在 Java 中,我们可以使用 LinkedList 类来实现单向链表。下面是一个示例代码:
```java
import java.io.*;
import java.util.*;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<Integer>();
// 添加元素
list.add(1);
list.add(2);
list.add(3);
try {
// 写入文件
FileOutputStream fos = new FileOutputStream("list.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(list);
oos.close();
fos.close();
// 读取文件
FileInputStream fis = new FileInputStream("list.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
LinkedList<Integer> newList = (LinkedList<Integer>) ois.readObject();
ois.close();
fis.close();
// 输出链表元素
System.out.println("链表元素:" + newList);
// 访问不存在的元素,抛出数组越界异常
int num = newList.get(3);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界异常:" + e.getMessage());
} catch (IOException e) {
System.out.println("IO异常:" + e.getMessage());
} catch (ClassNotFoundException e) {
System.out.println("找不到类异常:" + e.getMessage());
} finally {
System.out.println("程序结束");
}
}
}
```
在上面的代码中,我们首先创建了一个包含三个元素的 LinkedList,并将其序列化保存在文件中。然后我们读取该文件,将序列化的对象转换为 LinkedList,并尝试访问不存在的第四个元素,从而抛出数组越界异常。我们使用 try-catch 块捕获了数组越界异常和 IO 异常,并在 finally 块中关闭输入输出流,无论是否出现异常都会执行。最后输出程序结束的提示语句。
注意:此处提供的代码仅为示例,实际应用中可能需要根据具体业务需求进行修改和优化。
阅读全文