《Java高级-JavaIO系统.ppt》由会员分享,可在线阅读,更多相关《Java高级-JavaIO系统.ppt(54页珍藏版)》请在金锄头文库上搜索。
1、Java IO系统 第 二 章 本章相关词汇 单 词说 明 input输入 output输出 file文件 档案 directory目录 stream流 write写 书写 read读 阅读 source源头 来源 destination目标 目的地 print打印 本章目标 n 复习IO包 强化区分字符 字节的区别 n 运用FileInputStream类和FileOutputStream类完成复制文件的功能 n 运用FileReader类和FileWriter类配合BufferedReader类和BufferedWriter 类来进行字符的读取和写入功能 n 运用InputStreamRe
2、ader类和BufferedReader类来完成控制台输入的功能 n 清楚PrintWriter类的使用方式 System out JSP out java io包简介 n java io包也是Java内置的包 其中包含一系列对文件和 目录的属性进行操作 对文件进行读写操作的类 n 程序中如果要使用到该包中的类 对文件或流进行操作 则必须显式地声明如下语句 import java io 文件 n 什么是文件 文件可以认为是相关记录或存放在一起的数据的集合 n 文件一般是存放在磁盘上的 例如 硬盘 软盘和光盘等等 File类 n File类的对象不但可以表示文件 还可以表示目录 在程序 中一个F
3、ile类对象可以代表一个文件或目录 n 当创建一个文件对象后 就可以利用它来对文件或目录的 属性进行操作 如 文件名 最后修改日期 文件大小等 等 n 需要注意的是 File对象并不能直接对文件进行读 写操作 只能查看文件的属性 File类的构造方法 n File类的构造方法有4种重载方式 常用的如下 n 如 在当前目录下创建一个与aaa txt文件名相关联的文件对象 File f1 new File aaa txt 指明详细的路径以及文件名 请注意双斜线 File f2 new File D Java Hello java 构 造 方 法说 明 File String pathname 指定
4、文件 或目录 名和路径创建文件对象 File类中的常用方法 方 法 原 型说 明 boolean exists 判断文件是否存在 存在返回true 否则返回false boolean isFile 判断是否为文件 是文件返回true 否则返回false boolean isDirectory 判断是否为目录 是目录返回true 否则返回false String getName 获得文件的名称 String getAbsolutePath 获得文件的绝对路径 long length 获得文件的长度 字节数 boolean createNewFile throws IOException 创建新文
5、件 创建成功返回true 否则返回false 有可能抛出 IOException异常 必须捕捉 boolean delete 删除文件 删除成功返回true 否则返回false File类示例 public class FileDemo public static void main String args 创建一个文件对象 使之与一个文件关联 File file new File test txt 显示与文件有关的属性信息 System out println 文件或目录是否存在 file exists System out println 是文件吗 file isFile System o
6、ut println 是目录吗 file isDirectory System out println 名称 file getName System out println 绝对路径 file getAbsolutePath System out println 最后修改时间 file lastModified System out println 文件大小 file length stream 流 n 流是指一连串流动的数据信号 是以先进先出的方式发送 和接收数据的通道 A B C D E F InputStr eam 来自数据源的数据流 OutputStr eam 流向目的地的数据流 流
7、续 流的类型 n 根据流动方向的不同 流分为输入流和输出流 n 对于输入和输出流 由于传输格式的不同 又分为字节流和字符流 n字节流是指8位的通用字节流 以字节为基本 单位 在java io包中 对于字节流进行操作的 类大部分继承于InputStream 输入字节流 类和OutputStream 输出字节流 类 n字符流是指16位的Unicode字符流 以字符 两个字节 为基本单位 非常适合处理字符串 和文本 对于字符流进行操作的类大部分继承 于Reader 读取流 类和Writer 写入流 类 使用FileInputStream类读文件 n FileInputStream类称为文件输入流 继
8、承于 InputStream类 是进行文件读操作的最基本类 n 它的作用是将文件中的数据输入到内存中 我们可以利用 它来读文件 n 由于它属于字节流 因此在读取Unicode字符 如中文 的文件时可能会出现问题 FileInputStream类的构造方法 n FileInputStream类的构造方法有3种重载方式 以下是常用的几种 构 造 方 法说 明 FileInputStream File file throws FileNotFoundException 使用File对象创建文件输入流对象 如果文件打 开失败 将抛出异常 FileInputStream String name thro
9、ws FileNotFoundException 使用文件名或路径创建文件输入流对象 如果文 件打开失败 将抛出异常 FileInputStream类的常用方法 方 法 原 型说 明 int read throws IOException 读取文件中的数据 一次读取一个字节 读取的数据 作为返回值返回 如果读到文件末尾则返回 1 有可 能抛异常 必须捕捉 int read byte b throws IOException 读取文件中的数据 将读到的数据存放到byte型数组 中 并返回读取的字节的数量 未读到数据返回 1 有可能抛异常 必须捕捉 void close throws IOExce
10、ption 关闭流对象 有可能抛异常 必须捕捉 FileInputStream对象读文件示例1 public class FileInputStreamDemo1 public static void main String args try File file new File test txt 创建文件对象 使用文件对象创建文件输入流对象 相当于打开文件 FileInputStream fis new FileInputStream file for int i 0 i file length i char ch char fis read 循环读取字符 System out print
11、ch System out println fis close 关闭流 catch FileNotFoundException fnfe System out println 文件打开失败 catch IOException ioe ioe printStackTrace FileInputStream对象读文件示例2 public class FileInputStreamDemo2 public static void main String args try File file new File test txt 创建文件对象 FileInputStream fis new FileIn
12、putStream file 根据文件的字节长度创建字节数组 byte buf new byte int file length fis read buf 读取文件中的数据存放到字节数组中 String str new String buf 利用字节数组创建字符串 System out println str 打印字符串 fis close 关闭流 catch FileNotFoundException fnfe System out println 文件打开失败 catch IOException ioe ioe printStackTrace 使用FileOutputStream类写文件
13、n FileOutputStream类称为文件输出流 继承于 OutputStream类 是进行文件写操作的最基本类 n 它的作用是将内存中的数据输出到文件中 我们可以利用 它来写文件 FileOutputStream类的构造方法 n FileOutputStream类的构造方法有5种重载方式 以下是常用的几种 构 造 方 法说 明 FileOutputStream File file throws FileNotFoundException 使用File对象创建文件输出流对象 如果文件打开失败 将 抛出异常 FileOutputStream File file boolean append
14、throws FileNotFoundException 使用File对象创建文件输出流对象 并由参数append指定 是否追加文件内容 true为追加 false为不追加 异常情况 同上 FileOutputStream String name throws FileNotFoundException 直接使用文件名或路径创建文件输出流对象 异常情况同 上 FileOutputStream String name boolean append throws FileNotFoundException 直接使用文件名或路径创建文件输出流对象 并由参数 append指定是否追加 异常情况同上 F
15、ileOutputStream类的常用方法 方 法 原 型说 明 void write int b throws IOException 往文件中写数据 一次写一个字节 有可能抛异常 必须捕捉 void write byte b throws IOException 往文件中写数据 将byte数组中的数据全部写入到文 件中 有可能抛异常 必须捕捉 void close throws IOException 关闭流对象 有可能抛异常 必须捕捉 FileOutputStream对象写文件示例1 public class FileOutputStreamDemo1 在函数内部不进行异常处理 将异常抛
16、出函数外部 public static void main String args throws IOException String str Hello world File file new File test txt 创建文件对象 通过文件对象创建文件输出流对象 附加第二个参数true 指定进行文件追加 默认为不追加 FileOutputStream fos new FileOutputStream file true 逐个将字符写入到文件中 for int i 0 i str length i fos write str charAt i fos close 关闭流 FileOutputStream对象写文件示例2 public class FileOutputStreamDemo2 在函数内部不进行异常处理 将异常抛出函数外部 public static void main String args throws Exception String str I Love Java 通过文件名创建文件输出流对象 FileOutputStream fos new FileOutput