java清空inputstream中的流_Java 流处理

数据流

1、I/O流概述

大部分程序都需要输入/输出处理,比如从键盘读取数据、向屏幕中输出数据、从文件中读或者向文件中写数据、在一个网络连接上进行读写操作等。在Java中,把这些不同类型的输入、输出源抽象为流(Stream),而其中输入或输出的数据则称为数据流(Data Stream),用统一的接口来表示,从而使程序设计简单明了。

流一般分为输入流(Input Stream)和输出流(Output Stream)两类,但这种划分并不是绝对的。比如一个文件,当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。当然,键盘只是一个输入流,而屏幕则只是一个输出流。

在Java开发环境中,主要是由包java.io中提供的一系列的类和接口来实现输入/输出处理。标准输入/输出处理则是由包java.lang中提供的类来处理的,但这些类又都是从包java.io中的类继承而来。

输入流:数据提供者,可从中读取数据出来

输出流:数据接收者,可往其中写数据

2、字节流

e66ecd240338

①字节流的基类

Java中每一种字节流的基本功能依赖于基本类InputStream和OutputStream,它们是抽象类,不能直接使用。

属于InputStream类的方法有:

read():从流中读入数据

int read():从输入流中读一个字节,形成一个0~255之间的整数返回(是一个抽象方法)。

int read(byte b[]):读多个字节到数组中,填满整个数组。

int read(byte b[], int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引off开始的                    位置,并返回读取得字节数。

对于这三个方法,若返回-1,表明流结束,否则,返回实际读取的字节数。

skip():跳过流中若干字节数

available():返回流中可用字节数

mark():在流中标记一个位置

reset():返回标记过的位置

markSupport():是否支持标记和复位操作

close():关闭流

属于OutputStream类的方法有:

write(int b):将一个整数输出到流中(只输出低位字节,为抽象方法)

write(byte b[]):将字节数组中的数据输出到流中

write(byte b[], int off, int len):将数组b中从off指定的位置开始,长度为len的数据输出到流中

flush():刷空输出流,并将缓冲区中的数据强制送出

close():关闭流

Writer的方法:write(String s), write(String s, int off, int len)

例:把输入流中的所有内容复制到输出流中

e66ecd240338

②文件流

在I/O处理中,最常见的就是对文件的操作。java.io包中所提供的文件操作类包括:

用于读写本地文件系统中的文件:FileInputStream、FileOutputStream

(1)FileInputStream类用来打开一个输入文件,若要打开的文件不存在,则会产生例外FileNotFoundException,这是一个非运行时例外,必须捕获或声明抛弃;

(2)FileOutputStream类用来打开一个输出文件,若要打开的文件不存在,则会创建一个新的文件,否则原文件的内容会被新写入的内容所覆盖。

(3)在进行文件的读/写操作时,会产生非运行时例外IOException,必须捕获或声明抛弃(其它的输入/输出流处理时也同样需要进行输入/输出例外处理)。

文件流的构造方法:

FileInputStream(File f)            打开一个以f描述的文件作为输入。

FileInputStream(String name)             打开一个文件路径名为name的文件作为输入。

FileOutputStream(File f)            创建一个以f描述的文件作为输出,文件如果已经存在,则其内容被清空。

FileOutputStream(String name)            创建一个文件路径名为name的文件作为输出,文件如果已经存在,则其内容被清空。

FileOutputStream(String name, boolean append)            创建一个文件路径名为name的文件作为输出,文件如果已经存在,则在该输出上输出的内容被接到原有内容之后。

例:File f1 = new File(“file1.txt”);

File f2 = newFile(“file2.txt”);

FileInputStream in=new FileInputStream(f1);

FileOutputStream out=new FileOutputStream(f2);

FileOutputStream out=new FileOutputStream(“file3.txt”);

输入流的参数是用于指定输入的文件名,输出流的参数则是用于指定输出的文件名。

e66ecd240338

将一个文件复制到另一个文件中(覆盖)

e66ecd240338

把一个文件的内容加到另一个文件后

描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值