j2se_lesson1 java流

来源:互联网 发布:淘宝联盟怎么设置微博 编辑:程序博客网 时间:2024/05/29 13:27

流是重点,要搞清楚输入流是读取源文件,输出流是写内容到目标文件

1.两种基本的流:输入流和输出流

输入流:只能从中读取字节数据,而不能向其写出数据  IR

输出流:只能向其写入字节数据,而不能从中读取数据  OW

 

按照流所处理的数据类型划分,可以分为:

字节流:用于处理字节数据。

字符流:用于处理Unicode字符数据。

节点流和处理流

可以从/向一个特定的IO设备(如磁盘、网络)读/写数据的流,称为节点流。节点流也被称为低级流

实现对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读/写功能的流,称为处理流。处理流也被称为高级流。

       

输入流

输出流

字节流

字符流

InputStream

OutputStream

Reader

Writer

 

2.InputStream基本方法           IODemo

三个基本的read方法:

int read()

int read(byte[] buffer)

int read(byte[] buffer, int offset, intlength)

常见InputStream

低级InputStream类:InputStreamByteArrayInputStreamPipedInputStreamFileInputStream

高级InputStream类:DataInputStreamBufferedInputStream

 

3.OutputStream基本方法           OutputStreamDemo

三个基本的write方法:

void write(int c)

void write(byte[] buffer)

void write(byte[] buffer, int offset,int length)

其它方法

void close()

void flush()  //清空内存中的缓冲区,将滞留的内容全部写入磁盘

OutputStream

低级OutputStreamOutputStreamByteArrayOutputStreamPipedOutputStream

高级OutputStreamDataOutputStreamBufferedOutputStream

 

4.Reader/Writer

Reader/Writer处理的是字符类型的数据。它处理流的方式是以字符为单位进行的。

Reader/WriterInputStream/OutputStream一样,也分为节点流(低级流)和处理流(高级流)。

ReaderInputStream一样,用于从流中读取数据。它和InputStream的区别在于,InputStream字节为单位操作流,而Reader字符为单位操作流。

 

Reader fr = newFileReader("C:/mydata.txt");

//将低级流的内容放到高级流中做参数

BufferedReader br = newBufferedReader(fr);

 

Reader相关类                  ReaderDemo

低级Reader类:CharArrayReaderStringReaderPipedReaderFileReader

高级Reader类:BufferedReaderInputStreamReaderLineNumberReader

 

Reader常用方法

   读取方法:

   int read():用于从流中读出一个字符,并将它返回。

   int read(char[] buffer):将从流中读出的字符放到字符数组buffer中,返回读出的字符数。

   int read(char[] buffer,intoffset,int length):将读出的字符放到字符数组的指定offset开始的空间,每次最多读出length个字符。

   其他方法:

   void close():关闭Reader流。

   skip(long n):跳过指定的n个字符。

   boolean ready():判断流是否已经准备好被读取。

   boolean markSupported()

   void mark(int readAheadLimit)

   void reset()

Writer常用方法                     *****WriterDemo*****

   写入方法:

   void write(int c):将参数c的低16位组成字符写入到流中。

   void write(char[] buffer):将字符数组buffer中的字符写入到流中。

   void write(char[] buffer, intoffset, int length):将字符数组buffer中从offset开始的length个字符写入到流中。

   void write(String string):将string字符串写入到流中。

   void write(String string, intoffset, int length):将字符string中从offset开始的length个字符写入到流中。

   其他方法:

   void close():和OutputStreamclose方法类似。

   void flush():和OutputStreamflush方法类似。

Writer相关类

   低级Writer类:

   CharArrayWriter

   StringWriter

   PipedWriter

   FileWriter

   高级Writer类:

   BufferedWriter

   OutputStreamWriter

   PrintWriter

 

 

排除文本文件以外的文件都用字节流操作,如电影音乐exe文件;文本文件就用字符流操作。

字节流数据将读取到的文本信息先转换为字节,在计算机里以二进制形式表示,再将字节转换成字符显示出来

字符流,将文本内容直接在计算机里转换为字符,再显示出来,

 

从键盘输入数据,保存到文件中

BufferedReader reader =newBufferedReader(new InputStreamReader(System.in));

PrintWriter pw = newPrintWriter(new FileWriter(“d:\\abc.txt”));

 

String line = null;

while((line= reader.readLine()) !=null){

       if(“quit”.equals(line.toLowerCase())){

       break;

       }

 pw.println(line);

}

pw.close();

以后网络聊天程序会用到的