1. 目录和文件操作

关键考点:
 File类的概念。
 如何用File类看来操作目录和文件。

答案:
Java提供了java.io.File类对目录和文件进行操作。主要的操作方法包括:路径字符串构造方法、isDirectory、isFile、createNewFile、list、getName、delete。

  1. 写一个复制文件的程序

关键考点:
 InputStream的使用方法。
 OutputStream的使用方法。

答案:
本题目的设计思路可以有以下几个步骤。

  1. 用被复制文件的路径创建一个InputStream对象。
  2. 用复制文件的新路径创建一个OutputStream对象。
  3. 用read()方法循环把数据读出到一个byte数组中,直到读出数据的长度小于0。
  4. 用write()方法把byte数组中的字节写入输出流。
  5. 最后关闭输入流和输出流。
  6. 如何使用随机存取文件RandomAccessFile类

关键考点:
 RandomAccessFile的用法。

答案:
RandomAccessFile的使用思路主要包括以下一些项目:

  1. 用length()方法获取文件的内容长度。
  2. 用seek()方法随机的到达任何需要存取数据的地方。
  3. 调用read()方法获取当前位置的数据,用write()方法写入数据。
  4. 完成需要以后,调用close()关闭文件的打开。
  5. 字节流的处理方式

关键考点:
 流的概念。
 如何使用字节流。

答案:
字节流处理的是计算机最基本的单位byte,他可以处理任何数据格式的数据。主要操作对象就是byte数组,通过read()和write()方法把byte数组中的数据写入或读出。

  1. 字符流的处理方式

关键考点:
 字符流的概念。
 字符流的使用方法。

答案:
字符流是由字节流包装而来,它的输入和输出流类型包括StringReader和StringWriter、BufferedReader和BufferedWriter。字符流API的基本使用思路有以下步骤:

  1. 获取输入或输出流对象。可以从File得到,也可以从网络或其他地方得到。
  2. 根据特定的字符格式创建InputStreamReader或InputStreamWriter对象。
  3. 使用read()或readLine()方法,得到数据。或使用write()或print()方法进行字符输出。
  4. 最后关闭reader或writer。
  5. 什么是序列化

关键考点:
 序列化的概念。

答案:
序列化本质上就是把对象内存中的数据按照一定的规则,变成一些列的字节数据,然后再把这些字节数据写入到流中。而反序列化的过程相反,先读取字节数据,然后再重新组装成Java对象。
所有需要进行序列化的类,都必须实现Serializable接口,必要时还需要提供静态的常量serialVersionUID。

  1. 如何序列化和反序列化一个Java对象

关键考点:
 序列化的概念和用法
 ObjectOutputStream和ObjectInputStream的使用方法。

答案:
对于对象的输出和输入,Java的I/O体系中主要提供了ObjectOutputStream和ObjectInputStream两个类以供开发者使用,他们的基本使用思路有以下步骤。

  1. 让需要序列化的类实现java.io.Serializable接口。
  2. 提供静态的long型的常量serialVersionUID。
  3. 如果是序列化对象,则用一个输出流创建一个ObjectOutputStream对象,然后调用writeObject()方法。
  4. 如果是反序列化,首先使用一个输入流创建一个ObjectInputStream对象。然后调用readObject()方法,得到一个Object类型的对象。最后再做类型的强制转换。
  5. 最后关闭流。