内蒙古科技大学 教案 第七章输入输出流 本章学习重要目标: 握文件类Fie 掌握文件输入输出 掌握二进制I/O §7.1文件类File 为了能够永久地保存程序中创建的数据,需要将它们存储到文件中。本节介绍如 何使用文件Fil®类获取文件的属性以及刷除和重命名文件。 在文件系统中,每个文件都存放在一个目录下。文件名是一个字符串。 绝对文件名(absolute file name)是由文件名和它的完整路径以及驱动器字母组成 例如: c ook\Welcome.java是Welcome.j.ava在Windows操作系统上的绝对文件名 File类是文件名及其目录路径的一个包装类。 构造一个File类的对象: File filel new File("d:\a mp3") File filnew File("mage/ xt) 注意:构造 F类的对象,并不会在机器上创建一个文件。 创建一个File类的对象fle。Filefile=new File(“c.bookia.txt")方 §7.2文件输入输出 F对象封装了文件或略径的属性,但是它既不创建文件, 也不读写文件数据 为了完成IO操作,需要使用恰当的Java I/O类创建对象。本节介绍Scanner利 PrintWriter类读写文件。 java.io.PrintWriter类可用来创建一个文件并向文本文件写入数据。 File file=new File(“c:Ma.txt")方 PrintWriter类的方法 public PrintWriter(File file) throws FileNotFoundException 抛出: FileNotFoundException-如果在打开或创建文件时发生其他一些错误 java utilScanner类用来从控制台读取字符串和基本类型数值。Scanner可以将输 入分为由空白字符分隔的有用信息。例如:为了能从健盘读取,需要为System.in创建 个Scanner canner input-new Scanner(System.in)Scanner 第1页
内 蒙 古 科 技 大 学 教 案 第 1 页 第七章 输入输出流 本章学习重要目标: 掌握文件类 File 掌握文件输入输出 掌握二进制 I/O §7.1 文件类 File 为了能够永久地保存程序中创建的数据,需要将它们存储到文件中。本节介绍如 何使用文件 File 类获取文件的属性以及删除和重命名文件。 在文件系统中,每个文件都存放在一个目录下。文件名是一个字符串。 绝对文件名(absolute file name)是由文件名和它的完整路径以及驱动器字母组成。 例如: c:\book\Welcome.java 是 Welcome.java 在 Windows 操作系统上的绝对文件名。 File 类是文件名及其目录路径的一个包装类。 构造一个 File 类的对象: File file1 = new File("d:\\a.mp3"); File file2 = new File("image/a.txt"); 注意:构造一个 File 类的对象,并不会在机器上创建一个文件。 创建一个 File 类的对象 file。 File file = new File(“c:\\book\\a.txt"); §7.2 文件输入输出 File 对象封装了文件或路径的属性,但是它既不创建文件,也不读写文件数据。 为了完成 I/O 操作,需要使用恰当的 Java I/O 类创建对象。本节介绍 Scanner 和 PrintWriter 类读写文件。 java.io.PrintWriter 类可用来创建一个文件并向文本文件写入数据。 File file = new File(“c:\\a.txt"); PrintWriter output = new PrintWriter(file); 如果文件不存在,则创建一个新文件。 PrintWriter 类的方法 public PrintWriter(File file) throws FileNotFoundException 抛出: FileNotFoundException - 如果在打开或创建文件时发生其他一些错误 java.util.Scanner 类用来从控制台读取字符串和基本类型数值。 Scanner 可以将输 入分为由空白字符分隔的有用信息。例如:为了能从键盘读取,需要为 System.in 创建 一个 Scanner 对象,Scanner input = new Scanner(System.in);Scanner
内蒙古科技大学 教 案 public Scanner(File source)throws FileNotFoundException 一个从文件扫描的扫描器 参数: source-要扫描的文件 抛出: FileNotFoundException-如果源文件未找到 next S器返园下一个标志作为学符串,在等待要扫指的输入时此方法也 ng next() 连续录入学生姓名,输入“q”则系统退出 nublic class Test public static void main(String]args)throws Exception Scanner input=new Scanner(System.in). do System.out.print("请输入学生姓名:"方 name=input.next() while (Iname.equals("q)): System.out.print(“程序结束"): 方法nextByte()、nextShort)、nextInt(),和next()都称为令牌读取方法(token-reading method),它们会读取用分隔符分隔开的令牌。默认情况下,分隔符是空格。 一个令牌读取方法会读取一个以分隔符结束的令牌,然后对应nextByte©O short类型的值 和期望的类型不匹配,则抛出 个java.util.InputMismatchException异常 Java有许多用于各种目的的O类。通常,它们可以分为输入类和输出类。 §7.3二进制1/0 在文本文件(text file)中存储的数据是以我们能读懂的方式表示的 而在二进制文件(binary file)中存储的数据是用二进制形式表示的。我们读不懂 二进制文件。 OutputStream InputStream 第2页
内 蒙 古 科 技 大 学 教 案 第 2 页 public Scanner(File source) throws FileNotFoundException 创建一个从文件扫描的扫描器 参数: source - 要扫描的文件 抛出: FileNotFoundException - 如果源文件未找到 next public String next() 从这个扫描器返回下一个标志作为字符串,在等待要扫描的输入时此方法也可能阻塞。 连续录入学生姓名,输入“q”则系统退出 public class Test { public static void main(String[] args) throws Exception { String name; Scanner input = new Scanner(System.in); do { System.out.print("请输入学生姓名:"); name = input.next(); } while (!name.equals("q")); System.out.println("程序结束"); } } 方法 nextByte()、nextShort()、nextInt()、和 next()都称为令牌读取方法(token-reading method),它们会读取用分隔符分隔开的令牌。默认情况下,分隔符是空格。 一个令牌读取方法会读取一个以分隔符结束的令牌,然后对应 nextByte()、 nextShort()等方法,自动转换为一个 byte、short 类型的值。 如果和期望的类型不匹配,则抛出一个 java.util.InputMismatchException 异常。 Java 有许多用于各种目的的 I/O 类。通常,它们可以分为输入类和输出类。 §7.3 二进制 I/O 在文本文件(text file)中存储的数据是以我们能读懂的方式表示的。 而在二进制文件(binary file)中存储的数据是用二进制形式表示的。我们读不懂 二进制文件。 OutputStream InputStream