java 输入流和输出流

字节流:

InputStrean  字节输入流 从文件到程序

OutputStream  字节输出流 从程序到文件

字节输入流是指数据以字节形式从其他文件或者终端设备想程序流入;

输入流只能从流中读取数据使用InputStrean类完成

字节输出流:数据以字节形式从程序流出,输出流只能向流中写入数据,使用OutputStream

InputStrean的主要方法

方法

描述

Public void close()

关闭输入流

Public abstract int read()

以数字的方式读取内容

Public int read(byte [] b)

将内容读取到byte数组中,同时返回读入的个数

 

 

OutputStream的主要方法

方法

描述

Public void close()

关闭输出流

Public abstract int write(int b)

在数据流中写入一个字节

Public void  write(byte[] b)

在数据流中写入一个byte数组

Public void  write(byte[] b,int off,int len)

在数据流中写入一个指定范围byte数组

Public void flush()

刷新缓冲区

 

FileInputStreamInputStrean的子类,主要用于从文件读取数据;

FileOuputStreamOutputStream的子类,主要用于向文件中写入数据。

Public FileOuputStreamFile f,boolean flag

Boolean flag 参数是可选的,true表示追加模式打开文件,false表示以覆盖模式打开文件。默认flag参数值是flase

Public FielInputStream(File file);

 

BufferedInputStreanBufferedOutputStreamInputStreanOutputStream增加了内存缓冲区,根本目的是允许javaIO流一次操作多个字节,从而提高系统的性能。

BufferedInputStreamInputStrean in //按照32个字节缓冲区的缓冲流

BufferedInputStreamInputStrean inint size//指定大小的缓冲流

 

 

BufferedOutputStreamOutputStream in //按照32个字节缓冲区的缓冲流

BufferedOutputStreamOutputStream inint size//指定大小的缓冲流

BufferedOutputStream 中的flush方法可以强制输出缓冲区的数据

 

 

 

对象序列化和反序列化;

Java对象转换成字节序列的过程成为对象序列化

把字节序列恢复到java对象的过程叫做对象的发序列化

 

序列化类的对象要求实现java.io.Serializable

 

Public ObjectInputSrteaminputStream in

构造方法

构造输入对象

Final object readObject()

方法

从指定位置读取对象

 

Public ObjectOutStream

inputStream in

构造方法

构造输出对象

Final void writeObject()

方法

输出对象的指定位置

//对象序列化:对象转换成字节

File f=new File(“d:”+Fiel.separator+”stuInfo.txt”);

OutputStream outStream=new FileOutputStream(f);

ObjectOutputStream os=new ObjectOutputStream(outStream);

Os.writeObject(new Student(“tom”,20));

outStream.close();

os.close();

 

//对象反序列化:自己转换成对象

File f=new File(“d:”+Fiel.separator+”stuInfo.txt”);

InputStream inStream=new FileInputStream(f);

ObjectInputStream os=new ObjectInputStream(in);

Object object=inreadObject();

Student stu=Studentobject;

System.out.print(“姓名”+stu.getName());

System.out.print(“姓名”+stu.getAgee());

inStream.close();

in.close();                                                                              

 

字符流ReaderWriter 抽象类

Reader

方法

描述

Public abstract void close()

关闭输入流

Public int read()

读取单个字符

Public int readchar[] c

将内容读取到字符流数组中,并返回读取的长度

 

writer

方法

描述

Public abstract void close()

关闭输出流

Public int writerString str

输出字符串到流中

Public int writerchar[] c

输出字符数组到流中

Public abstarct void flush()

强制清空缓存

 

FileReaderFileWriterReanderWriter的实现子类,主要用于读写文件

File f=new File(“ddemo/.doc”);

Writer out=new FileWriterf);

Out.wirter(“Hello word”);

Out.close();

Reader reader=new FileReader(f);

Char c[]=new char[1024];

Int len=reandre.read(c);

 

InputStreamReader OutputStreamWriter 分别是ReanderWriter的子类,二者用于字节流和字符流之间的转换。

InputStreamReader用于将输入的字节流转变为字符流

OutputStreamWriter  用于将输入的字符流转变为字节流

 

InputStreamReaderInputStream in

InputStreamReaderInputStream in,String charsetName

 

OutputStreamWriter (OutputStream out)

OutputStreamWriter (OutputStream out,String charsetName)

 

File f=new File(“d;/demo.txt”);

OutputStreamWriter os=new OutputStreamWriter(new FileOPutInStream(f));

Os.write(“hello word”);

Os.close();

 

BufferedReaderBufferedWriter

BufferedReaderBufferedWriter是带缓冲区的ReaderWriter.

使用BufferedReader读取文本时,将首先从文件中读取字符数据并存入缓冲区中,然后调用read(),先冲缓冲区开始读取,缓冲区不足是再从文件中读取;

使用BufferedWriter时,写入数据将先存储到缓冲区中,在缓冲区饱满的情况下将一次性写入目的地。

通过缓冲区可以减少对硬盘的输入或输出操作,提高文件存取效率。

BufferedReader

方法

类型

描述

BufferedReaderReader in

构造方法

接受Render类实例

Public String readLine()

方法

从缓冲区读取第一行文本

Public int  read()

方法

读取单个字符

Public int  readchar[] c,int off,int len

方法

读取字符数组的一部分

 

 

 

 

 

BufferedWriter

方法

类型

描述

BufferedWriterReader in

构造方法

接受Writer类实例

Public String newe()

方法

写入一个行分隔符

Public int  writeint c

方法

写入单个字符

Public int  writerchar[] c,int off,int len

方法

写入字符数组的一部分

Public int witerString st off,int len

 

写入字符数串的一部分

 

File f=new File(“d;/demo.txt;

FileWriter bufWriter=new BufferedWriter(writer);

bufWriter.writer(“hello word);

bufwruter.close();

writer.close();

FileReader reader =new FileReader(“f);

BufferedReader bufReader=new BufferedReader(reader);

Sysout.out.print(bufReader.readLine());

 

PrintWriterWriter的子类,其作用是将格式化的数据或对象输出到一个文本输出流

printWriter 类中主要的方法是print()writer(); 二者提供非常多的参数,可以实现多种形式的输出

字节流

字符流

以字节为单位输出/输出

以字符输出

操作时不用到缓冲区(内存)

使用缓冲区

字节流按8为传输

字符按16为传输

字节流是由字节组成的,字符流是由字符组成的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值