
信息的读取和 导出 ■定义信息读取类,对输入信息进行读取 ■定义信息输出类,可把信息输出成不同 格式的文件
信息的读取和 导出 ◼定义信息读取类,对输入信息进行读取 ◼定义信息输出类,可把信息输出成不同 格式的文件

授课内容 ■输入输出方法 ■输入输出流的基类 File l/O ■随机存取文件 ■文件的其它操作 ■流的分类
授课内容 ◼ 输入输出方法 ◼ 输入输出流的基类 ◼ File I/O ◼ 随机存取文件 ◼ 文件的其它操作 ◼ 流的分类

◆ 输入输出方法 文件,字符串 文件 存储区 文件 起 程序 程序 餐 网络端点 终端 数据流 网络端点 ■数据流是指所有的数据通信通道 ■在java中有关流的操作使用java.io.* ■出于安全的考虑,小应用不能实现文件O流
文件 程序 终端 文件 程序 网络端点 数据流 起 点 终 点 网络端点 文件,字符串 存储区 输入输出方法 ◼ 数据流是指所有的数据通信通道 ◼ 在java中有关流的操作使用java.io.* ◼ 出于安全的考虑,小应用不能实现文件I/O流

输入输出方法 ■System类管理标准输入输出流和错误流 ■System.out: ■把输出送到缺省的显示(通常是显示器) ■System.in ■从标准输入获取输入(通常是键盘) ■System.er ■把错误信息送到缺省的显示 ■每当main方法被执行时,就自动生成上述三个对 象
输入输出方法 ◼ System类管理标准输入输出流和错误流 ◼ System.out: ◼ 把输出送到缺省的显示(通常是显示器) ◼ System.in ◼ 从标准输入获取输入(通常是键盘) ◼ System.err ◼ 把错误信息送到缺省的显示 ◼ 每当main方法被执行时,就自动生成上述三个对 象

输入输出方法 public class ReadHello public static void main(String args[]) char inchar; System.out.printIn("Enter a character:") try{inChar=(char)System.in.read(); Syste.out.printIn(""+inChar); }catch(IOException e) Sytem.out.printin("Error reading from user"); }
输入输出方法 public class ReadHello { public static void main(String args[]) { char inchar; System.out.println(“Enter a character:”); try{ inChar=(char)System.in.read(); Syste.out.println(“ “+ inChar); }catch(IOException e) { Sytem.out.println(“Error reading from user”); } } }

输入输出方法 import java.io.*; class IOTest public statics void main(String args[]) [try byte bArray[]=new byte[128]; System.out.println("Enter something:"); System.in.read(bArray); System.out.print("You entered:") System.out.println(bArray): }catch(IOException ioe) System.out.printin(ioe.toString());
输入输出方法 import java.io.*; class IOTest { public statics void main(String args[]) {try { byte bArray[]=new byte[128]; System.out.println(“Enter something:”); System.in.read(bArray); System.out.print(“You entered:”); System.out.println(bArray); }catch(IOException ioe) { System.out.println(ioe.toString()); } } }

输入输出方法 ■为什么输入的是字符,输出是乱码? ■原因:System.out.println(bArray))输出的是数组的地址 而不是字符 ■改进:将字符数组变换成字符串 ■原来是:System.out.println(bArray); ■现在为:String s=new String(bArray,O); System.out.println(s); ■System.in是属于BufferedInputStream类型 ■System.out是属于PrintStream类型 ·System.err也是属于PrintStream类型
输入输出方法 ◼ 为什么输入的是字符,输出是乱码? ◼ 原因:System.out.println(bArray)输出的是数组的地址 而不是字符 ◼ 改进:将字符数组变换成字符串 ◼ 原来是:System.out.println(bArray); ◼ 现在为:String s=new String(bArray,0); ◼ System.out.println(s); ◼ System.in是属于BufferedInputStream类型 ◼ System.out是属于PrintStream类型 ◼ System.err也是属于PrintStream类型

输入输出流的基类 ■Java中每一种流的基本功能依赖于基本类 InputStreamOutputStream ■它们是抽象类,不能直接使用 ■属于InputStream类的方法有: ■read():从流中读入数据 ■skip0:跳过流中若干字节数 ■available):返回流中可用字节数 ■mark0:在流中标记一个位置 ■reset():返回标记过得位置 ■markSupport():是否支持标记和复位操作 ■close0:关闭流
输入输出流的基类 ◼ Java中每一种流的基本功能依赖于基本类 InputStream和OutputStream ◼ 它们是抽象类,不能直接使用 ◼ 属于InputStream类的方法有: ◼ read():从流中读入数据 ◼ skip():跳过流中若干字节数 ◼ available():返回流中可用字节数 ◼ mark():在流中标记一个位置 ◼ reset():返回标记过得位置 ◼ markSupport():是否支持标记和复位操作 ◼ close():关闭流

输入输出流的基类 ■方法read()提供了三种从流中读数据的方法 ■int read(0:读一个整数 ■int read(byte b[):读多个字节到数组中 int read(byte,int off,int len); ■属于OutputStream类的方法有: ■write(intb):将一个整数输出到流中 ■write(byte b[):将数组中的数据输出到流中 ■write(byte b[],int off,.int len):将数组b中从off指定的位 置开始len长度的数据输出到流中
输入输出流的基类 ◼ 方法read()提供了三种从流中读数据的方法. ◼ int read():读一个整数 ◼ int read(byte b[]):读多个字节到数组中 ◼ int read(byte,int off,int len); ◼ 属于OutputStream类的方法有: ◼ write(int b):将一个整数输出到流中 ◼ write(byte b[]):将数组中的数据输出到流中 ◼ write(byte b[], int off,int len):将数组b中从off指定的位 置开始len长度的数据输出到流中

■ 输入输出流的基类 ■fush(0:将缓冲区中的数据强制送出 ■close(0:关闭流 ■PrintStream类 println()不属于OutputStream类,它是PrintStream类 的子类,能提供复杂的输出 ■PrintStream类的方法有: write,flush,checkError,print,printin,close. ■其中println可以输出多种形式的数据.例如: ■println(String s),println(char c)等
输入输出流的基类 ◼ flush():将缓冲区中的数据强制送出 ◼ close():关闭流. ◼ PrintStream类 ◼ println()不属于OutputStream类,它是PrintStream类 的子类,能提供复杂的输出 ◼ PrintStream类的方法有: ◼ write, flush, checkError,print, println,close. ◼ 其中println可以输出多种形式的数据.例如: ◼ println(String s), println(char c)等