09 第9章 输入输出流_第1页
09 第9章 输入输出流_第2页
09 第9章 输入输出流_第3页
09 第9章 输入输出流_第4页
09 第9章 输入输出流_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java 语言程序设计,天津理工大学 计算机与通信工程学院 主讲教师:孙世温 ,2020/8/5,第9章 输入/输出流,第 2 页,第9章 输入/输出流,2020/8/5,第9章 输入/输出流,第 3 页,主要内容,流的基本概念 java.io包中提供的流类 几种典型的I/O操作 标准 I/O File I/O 字节数组 I/O 字符串 I/O 数据流 I/O 对象 I/O,Reader Writer,InputStream OutputStream,本章学习要求: 1)理解基本原理 2)“掌握”典型应用,2020/8/5,第9章 输入/输出流,第 4 页,流(Stream),流的基础知识 一

2、个流是读写的源或目的地 例如,一个需要键盘输入的程序可以用流来做到 两种基本的流(输入流和输出流) 可以从输入流读,但不能对它写 可以向输出流写,但不能对它读 流的源和目的地可以是 键盘、显示器窗口、内存、磁盘文件等,2020/8/5,第9章 输入/输出流,第 5 页,java.io包中提供大量的流类以完成IO操作 4个abstract类 其子类具体完成I/O操作,InputStream(字节输入流) OutputStream(字节输出流),Reader (字符输入流) Writer (字符输出流),2020/8/5,第9章 输入/输出流,第 6 页,abstract类:InputStream

3、、OutputStream,InputStream类方法 三个基本的read方法 int read ( ) throws IOException; int read(byte ) throws IOException; int read(byte , int start, int len) throws IOException; 其他方法 void close ( ) throws IOException; int available ( ) void skip(long n),OutputStream类方法 三个基本的write方法 void write(int) throws IOExce

4、ption; void write(byte ) throws IOException; void write(byte , int start, int len) throws IOException; 其他方法 void close ( ) throws IOException; void flush ( ) throws IOException;,2020/8/5,第9章 输入/输出流,第 7 页,abstract类:Reader、Writer,Reader类的方法 三个基本的read方法 int read ( ) throws IOException; int read(char )

5、throws IOException; int read(char , int start, int len) throws IOException; 其他方法 void close ( ) throws IOException; int available ( ) void skip(long n),Writer类的方法 三个基本的write方法 void write(int) throws IOException; void write(char ) throws IOException; void write(char , int start, int len) throws IOExc

6、eption; 其他方法 void close ( ) throws IOException; void flush ( ) throws IOException;,2020/8/5,第9章 输入/输出流,第 8 页,InputStream及其子类,InputStream ByteArrayInputStream FileInputStream FilterInputStream BufferedInputStream DataInputStream LineNumberInputStream PushbackInputStream ObjectInputStream PipedInputSt

7、ream SequenceInputStream StringBufferInputStream,分别将字节数组(ByteArray)、文件(File)、对象(Object)等作为输入流的“源”,2020/8/5,第9章 输入/输出流,第 9 页,OutputStream及其子类,OutputStream ByteArrayOutputStream FileOutputStream FilterOutputStream BufferedOutputStream DataOutputStream PrintStream ObjectOutputStream PipedOutputStream,分

8、别将字节数组(ByteArray)、文件(File)、对象(Object)等作为输出流的“目的地”,2020/8/5,第9章 输入/输出流,第 10 页,Reader及其子类,Reader BufferedReader LineNumberReader CharArrayReader FilterReader PushbackReader InputStreamReader FileReader PipedReader StringReader,分别将字符数组(CharArray)、文件(File)等作为输入流的“源”,2020/8/5,第9章 输入/输出流,第 11 页,Writer及其子类

9、,Writer BufferedWriter CharArrayWriter FilterWriter OutputStreamWriter FileWriter PipedWriter PrintWriter StringWriter,分别将字符数组(CharArray)、文件(File)等作为输出流的“目的地”,2020/8/5,第9章 输入/输出流,第 12 页,典型I/O操作之一:标准I/O,System.in和System.out 从键盘接收输入数据 java.util.Scanner Scanner sc = new Scanner(System.in); int a = sc.n

10、extInt(); 另一种方式: BufferedRead br=new BufferedReader(new InputStreamReader(System.in); 输出数据到显示器 System.out.println(),System.in为InputStream的对象 表示键盘 System.out为PrintStream的对象 表示显示器,2020/8/5,第9章 输入/输出流,第 13 页,命令行参数和系统环境变量 Java命令java.exe可以携带参数,叫命令行参数 java main方法中的参数args可以用来接受命令行参数 public void static main

11、(String args) args0 第一个参数 args1 第二个参数,,2020/8/5,第9章 输入/输出流,第 14 页,典型I/O操作之二:文件I/O,“文件”的基本概念 File类 创建File对象 File(String filename) File(String directoryPath,String filename) File(File f, String filename) File类的方法 获取文件信息 目录相关 创建与删除文件,2020/8/5,第9章 输入/输出流,第 15 页,用于获取文件信息的File类的方法: public String getName()

12、 获取文件的名字。 public boolean canRead() 判断文件是否是可读的。 public boolean canWrite() 判断文件是否可被写入。 public boolean exits() 判断文件是否存在。 public long length() 获取文件的长度(单位是字节)。 public String getAbsolutePath() 获取文件的绝对路径。 public String getParent() 获取文件的父目录。 public boolean isFile() 判断文件是否是一个正常文件public boolean isDirectroy()

13、判断文件是否是一个目录。 public boolean isHidden() 判断文件是否是隐藏文件。 public long lastModified() 获取文件最后修改的时间。,2020/8/5,第9章 输入/输出流,第 16 页,用于创建/删除文件的File类的方法: public boolean createNewFile() public boolean delete() 例: File f=new File(c:myletter,letter.txt); f.createNewFile() f.delete();,2020/8/5,第9章 输入/输出流,第 17 页,目录相关的F

14、ile类的方法: 1)创建目录 public boolean mkdir():创建一个目录 2)列出目录中的文件 public String list() 用字符串形式返回目录下的全部文件, public File listFiles() 用File对象形式返回目录下的全部文件。 public String list(FilenameFilter obj) 用字符串形式返回目录下的指定类型的所有文件。 public File listFiles(FilenameFilter obj) 用File对象返回目录下的指定类型所有文件。,【例9-1】,2020/8/5,第9章 输入/输出流,第 18

15、页,运行本机上的可执行文件 首先使用Runtime 类声明一个对象,如: Runtime ec; 然后使用静态getRuntime()方法创建这个对象: ec=Runtime.getRuntime(); ec可以调用exec(String command)方法打开本地机的可执行文件或执行一个操作。,【例9-2】,2020/8/5,第9章 输入/输出流,第 19 页,File IO 之 顺序读写文件 文件字节流 FileInputStream FileOutputStream 文件字符流 FileReader FileWriter 缓冲流(读取/写入文本行) BufferedReader Buf

16、feredWriter,【例9-3】,【例9-4】,【例9-5】,BufferedReader必须与Reader流对象连接 BufferedWriter必须与Writer流对象连接,2020/8/5,第9章 输入/输出流,第 20 页,File IO 之 随机读写文件 RandomAccessFile类 即能读,也能写 创建RandomAccessFile对象 RandomAccessFile(String name,String mode) RandomAccessFile(File file,String mode) 参数mode取r(只读)或rw(可读写),决定创建的流对文件的访问权利。

17、,【例9-11】,【例9-12】,2020/8/5,第9章 输入/输出流,第 21 页,典型I/O操作之三:字节数组I/O、字符串I/O,将内存中的字节数组作为流的源和目标 ByteArrayInputStream ByteArrayOutputStream 将内存中的字符串作为流的源和目标 StringReader StringWriter,【例9-7】,2020/8/5,第9章 输入/输出流,第 22 页,典型I/O操作之四:数据流I/O,DataInputStream和DataOutputStream 允许按照与机器无关的风格读取或写入数据,【例9-8】,2020/8/5,第9章 输入/输出流,第 23 页,典型I/O操作之五:对象I/O,ObjectInputStream和ObjectOutputputStream 构造方法: ObjectInputStream(InputStream in) ObjectOutputStream

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论