当前位置:文档之家› 7输入与输出流

7输入与输出流

DataInputStream和DataOutputStream允许通过数据流读取java基本类型:boolean、float等。
ObjectInputStream和ObjectOutputStream处理对象的输入输出。读对象和写对象一样简单,但是要注 意,方法readObject()把数据流以Object类返回,返回内容应该在转换为正确的类名之后再执行该类 的方法。
Java语言程序设计
课程代码:04747 主讲人:纪老师
第七章 输入流和输出流
1数据流的基本概念
java中,把不同类型的输入、输出源抽象为流,其中输入或输出的数据称为数据流(Data Stream)。 数据流是指一组有顺序的、有起点、有终点的字节集合。程序从键盘接受数据或向文件中写数据,都可 以用数据流来完成。 java.io包提供数据流的4个抽象类:inputstream、outputstream、reader、writer。
3.1读者和写者
Writer
No.
1
2 3 4 5
Reader 6
方法 public Writer append(CharSequence csq) throws
IOException public void write(char[] cbuf) throws
IOException public void write(int c) throws IOException public void write(String str) throws IOException public abstract void flush() throws IOException
4文件的处理
No.
方法
1
public boolean canRead()
2
public boolean canWrite()
3
public boolean canExecute()
4
public long length()
5
public long lastModified()
6
public boolean isDirectory()
2基本字节数据流类
inputstream和outputstream都是抽象类。抽象类是不能惊醒实例化的,因此,在实际应用中经常用到 并不是这两个类,而是一系列的基本数据流。他们都是inputstream和outputstream的子类。在实现其 父类方法的同时又都定义了其特有的功能。
2.1文件数据流
public abstract void close() throws IOException
类型
普通
普通 普通 普通 普通 普通
追加输出内容
输出字符数组 输出单个字符 输出字符串 刷新缓冲区 关闭输入流
描述
No.
方法
1
public int read() throws IOException
2 public int read(char[] cbuf) throws IOException
2.3序列化
能够记录自己的状态以便将来得到复原的能力,称之为对象的持久化。称一个对象是可持久的,意味着 可以把这个对象存入磁盘、磁带或传入另一个计算机保存。 对象通过数值类描述自己的状态,记录对象额就是记录这些数值。把对象转换为字节序列的过程称为对 象序列化,把字节序列恢复为对象的过程称为对象的反序列化。 序列化的主要任务是写出对象实例变量的数值。序列化是一种用来处理对象流的机制。所谓对象流也就 是将对象进行流化。 Serializable接口进行序列化。
谢谢观看! 教育没有距离,知识改变命运
➢ File file = new File("d:" + File.separator + "mldn.txt");
➢ File类操作父目录
No.
方法
1
public File getParentFile()
2
public boolean mkdirs()
类型
描述
普通 找到一个指定路径的父路径
普通 创建指定目录
1.2输出数据流
输出数据流是指只能写不能读的流,用于从计算机中输出数据。 java中输出数据流从outputstream抽象类继承而来。
输出数据流操作方法: void write(int i); void write(byte[] b); void write(byte[] b,int off, int len); void close(); void flush();
描述 读取单个字符,无数据读取是返回-1 读取多个字符,并返回读取个数 跳过指定的字符个数后读取 是否可以开始读取数据 关闭输入流
3.2缓存区读者和写者
➢ BufferedReader提供了一种字符流的缓冲区数据读取,利用此类进行数据 读取时会将读取到的数据暂时保存在缓冲区之中,而后利用其内部提供的 方法将读取到的内容一次性取出
2.2过滤器数据流
缓冲区数据流有BufferedInputStream和BufferedOutputStream,它们是在数据流上增加了一个缓冲区, 都属于过滤器数据流。当读入数据时,数据以块为单位先进入缓冲区,其后的读写操作则作用域缓冲区。 采用这个办法可以降低不同硬件设备之间的速度差异,提高操作的效率。支持mark()、reset()、 skip()方法。
4文件的处理
File类文件的基本操作方法
No.
方法
Байду номын сангаас类型
描述
1
public File(String pathname)
构造 给定一个要操作文件的完整路径
2 public File(File parent, String child) 构造 给定要操作文件的父路径,和子文件名称
3
public boolean createNewFile() throws IOException
1.1输入数据流
输入数据流是指只能读不能写的数据流,用于向计算机内输入信息使用。 java输入数据流从inputstream继承而来。
输入数据流的操作方法: int read(); int read(byte[] b); int read(byte[] b,int off,int len); void close();
文件数据流包括FileInputStream和FileOutputStream,其数据源或数据终点都应当是文件。 不支持mark()和reset()方法。
使用文件数据流进行I/O操作时,对于FileInputStream类的实例对象,如果所指定的文件不存在,则产 生FileNotFoundException异常。由于它是非运行时异常,因此必须加以捕捉或声明。对于 FielOutputStream类的实例对象,如果所指定的文件不存在,则系统创建一个新文件,如果存在,那么 就写入内容将覆盖原来内容。如果读、写文件或生成文件发生异常,则产生IOException异常,也需要 由程序员捕捉并处理。
7
public boolean isFile()
8
public boolean isHidden()
9
public File[] listFiles()
类型 普通 普通 普通 普通 普通 普通 普通 普通 普通
描述 文件是否能读 文件是否能写 文件是否能执行 获取文件大小(返回字节长度) 获得最后一次修改日期 是否是目录 是否是文件 是否隐藏 列出目录中的全部文件信息
3
public long skip(long n) throws IOException
4
public boolean ready() throws IOException
5 public abstract void close() throws IOException
类型 普通 普通 普通 普通 普通
No.
方法或常量
类型
描述
1
public BufferedReader(Reader in)
构造 接收一个Reader类的实例
2
public String readLine() throws IOException
普通 一次性从缓冲区中将内容全部读取进来
4文件的处理
java.io.File类是一个与文件本身操作有关的类,此类可以实现文件创建、删除、重命名、取得文件大 小、修改日期等常见的系统文件操作
普通 创建文件
4
public boolean delete()
普通 删除文件
5
public boolean exists()
普通 判断给定路径是否存在
4文件的处理
文件父类的路径处理
➢ 路径分隔符:public static final String separator,在不 同操作系统可以获取不同的分隔符。
相关主题