Java(文件输入与输出)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java.lang.object OutputStream File FileDescriptor StreamTokenizer ObjectStreamClass
RandomAccessFile FileOutputStream PipedOutputStream FilterOutputStream
FilterWriter
FileWriter
PipedWriter
StringWriter
输入/输出字符流的类层次
二、常用流类的使用方法
• 字符流:
– 是从Reader和Writer派生出的一系列类,其中Reader和Writer是抽象类, 只提供了一系列用于字符流处理的接口。 – 字符流的数据源或目标通常是文本文件,例如FileReader和FileWriter就是用 来读写文本文件的。 – 字符流又可分为两大类:节点流(用来从数据源读入数据或者往目的地写出数据) 和处理流(对数据执行某种处理)。
– InputStream类:System.in,标准输入流,默认状态对应键盘 – PrintStream类: System.out,标准输出流,默认对应显示器, System.error ,标准错误信息输出流。 它们是System类中定义的类成员变量, 标准设备可以使用setIn/setOut/setErr方法重新指定!
ByteArrayInputStream
LineNumberInputStream
பைடு நூலகம்
BufferedInputStream
FilterInputStream
SequenceInputStream
PushbackInputStream DataInputStream
StringBufferInputStream
牡丹江大学信电系版权所有
二、常用流类的使用方法
• 字符流文本文件的读写举例
– 写文本文件
• 例6-2,用FileWriter类的write()方法创建一个文本文件Hello.txt,并写入若干 行文本。p158 • 例6-4,用BufferedWriter类的write()方法和newLine()方法创建一个文本文 件newHello.txt,并写入若干行文本。p158
读
必须有要读的文件
写
无文件则创建,有 则覆盖或追加
打开一个流 读信息
关闭流
实例化输入流对象 通过对象调用读信 息方法
通过对象调用 close()
打开一个流 写信息
关闭流
实例化输出流对象 通过对象调用写信 息方法
通过对象调用 close()
牡丹江大学信电系版权所有
一、流和文件
• (三)标准输入输出流
LineNumberReader
InputStreamReader
FilterReader PipedReader StringReader
FileReader PushbackReader
java.lang.object
BufferedWriter CharArrayWriter InputStreamWriter Writer
欢迎使用
• Java io
流、文件及其输入输出
主讲教师:谢凤静
牡丹江大学信电系版权所有
一、流和文件
(一)流与java.io包
1 流 流的含义:计算机系统使用的所有数据从计算机的输入向输出流动,这种数据 流动的想法导致了术语流(Stream)的产生。流是一种抽象的概念,它所指的是 从数据发送地到数据接收的运动数据序列。 流的分类: 1)按照流的传输方向分类: 输入流(input streams)是数据从外部设备(通常是键盘、鼠标和扫描仪 称为数据源)到计算机(程序); 输出流(output streams)是数据从计算机(程序)输出到外部设备(例 如显示器等称为目标)。使用“流”的逻辑设备来屏蔽外部设备的差异性,从而使 容易接受。<参考P153> 2)按照流的处理方式分类: 字符流:是一个字符序列,是从Reader和Writer派生出的一系列类,以16 位的Unicode码表示的字符为基本处理单位,其实质也是字节流. 字节流:是一个字节序列,是从InputStream和OutputStream派生出的 一系列类,以字节(byte)为基本处理单位。 2 java.io包 Java以类库的形式提供了多种不同的数据输入/输出处理方式,使用户可以非 常灵活的进行各种I/O操作。常用的流(输入/输出)类主要是由java.io包提供的。 流和文件等类的继承关系如下图所示。
• (四)I/O异常 • 异常处理机制:两种方式
– 在方法首部添加“抛出异常”(throws IOException),将异常处理 的事宜交给系统完成。 – try{可能出现异常的代码} catch(IOException),或者在方法首部声 明抛出异常。
牡丹江大学信电系版权所有
BufferedReader CharArrayReader Reader
牡丹江大学信电系版权所有
object
InputStream
OutputStream
Reader
Writer
File
FileDescriptor
RandomAccessFile
流和文件等类的继承关系
一、流和文件
(二)文件 广义上的文件:计算机系统的所有设备都可以理解为一个文件。通过对一个 文件的打开操作,流就与特定的文件建立了联系。一旦文件打开,则就可 以在文件和程序之间交换信息。
• 主要方法:
– – – – – read(); //从流中读入(输入)数据,文件读完,返回-1 readLine(); //从流中读取一行数据,文件读完,返回null write(参数1[,参数2][,…]); //将参数中提供的数据输出到流中 newLine(); //换行(等价于“\n”,但只属于BufferedWriter类) close(); //关闭流
ByteArrayOutputStream BufferedOutputStream
DataOutputStream PrintStream
ObjectOutputStream
输入/输出字节流的类层次
– 读文本文件
• 例6-5,用BufferedReader类的readLine()方法从一个文本文件Hello.txt读取 文本并显示在屏幕上。p160
牡丹江大学信电系版权所有
二、常用流类的使用方法
• 字节流:
– 是从InputStream和OutputStream派生出的一系列类,其中 InputStream和OutputStream是抽象类,只提供了一系列用于字节流处理 的接口。
• 主要方法:
– read(); //从流中读入(输入)数据 – close(); //关闭流 – write(参数1[,参数2][,…]); //将参数中提供的数据输出到流中
牡丹江大学信电系版权所有
ObjectInputStream
FileInputStream PipeInputStream InputStream