《java笔记》word版Word文档格式.docx

上传人:b****3 文档编号:15280620 上传时间:2022-10-29 格式:DOCX 页数:15 大小:20.47KB
下载 相关 举报
《java笔记》word版Word文档格式.docx_第1页
第1页 / 共15页
《java笔记》word版Word文档格式.docx_第2页
第2页 / 共15页
《java笔记》word版Word文档格式.docx_第3页
第3页 / 共15页
《java笔记》word版Word文档格式.docx_第4页
第4页 / 共15页
《java笔记》word版Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

《java笔记》word版Word文档格式.docx

《《java笔记》word版Word文档格式.docx》由会员分享,可在线阅读,更多相关《《java笔记》word版Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

《java笔记》word版Word文档格式.docx

真正的文件在硬盘里数据,读数据都是0和1,文件想像成一个桶,文件里取数据,管道就是流,和水流的原理一样。

流就是2根管道,一个向里一个向外,无论向里还是向外都是对我们写的程序来说的

包在外面是处理流,一根不够包2根处理流管道,直接套在节点流或者处理流上面

在java程序中,对于数据的输入/输出操作以"

流"

方式进行,J2SDK提供了各种各样的"

类,用以获取不通种类的数据,程序中通过标准的方法输入和输出数据

通常我们指的流就是:

io包里的类,java.io包中定义了多个流类型(类或抽象类)来事先输入/输出功能:

可以从不桶的调度对其进行分类:

按数据流的方向不同可以分为输入流和输出流

按处理数据单位不同可以分为字节流和字符流

按照功能不同可以分为节点流和处理流

(注释):

输入流:

程序的角度读数据

输出流:

往外写

字节流:

0和1

字符流:

一个字符一个字符(2个字节)

节点流:

管道直接接到数据源上

处理流:

套在其他管道上的流,处理流是"

连接"

在已存在的流(节点流或处理流)之上,

通过对数据的处理为程序提供更为强大的读写功能。

J2SDK所提供的所有刘类型位于包java.io内都分别继承自以下四种抽象流类型

字节流字符流

输入流InuputStreamReader往里读

输出流OutputStreamWriter字符形式往外写

4根管道:

一端接着程序一端接着数据源

InputStream:

继承自InputStream的流都是用于向程序中输入数据,且单位为字节(8bit)

深色:

节点流浅色:

处理流

InputStream的基本方法:

abstractintread()throwsIOExceptionread一下读一个字节

读取一个字节并以正数的形式返回(0-255)如果返回-1已到输入流的末尾

intread(byteb)throwsIOException

从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。

返回实际读取的字节数,如果读取前已到输入流的末尾返回-1

(Eg.p2p毁硬盘是硬盘访问的频繁的原因,可以在内存中分配个空间,读一次装满,写:

在内存里写好了,一次性写到硬盘里去)

intread(byteb,intoff,intlen)throwsIOException

将输入流中最多len个数据字节读入byte数组。

从len的位置开始返回实际读取的字节数,如果读取前以到输入流的末尾返回-1longskip(longn)throwsIOException

跳过和丢弃此输入流中数据的n个字节。

voidclose()throwsIOException

关闭此输入流并释放与该流关联的所有系统资源。

OutputStream:

继承自OutputStream的流是用于程序中输出数据,且数据的单位为字节(8bit),此抽象类是表示输出字节流的所有类的超类。

下图中深色为节点流,浅色为处理流

OutputStream的基本方法:

abstractvoidwrite(intb)throwsIOException

将指定的字节写入此输出流。

该字节数据为参数b的低8位

关闭此输出流并释放与此流有关的所有系统资源。

voidflush()throwsIOException刷新此输出流并强制写出所有缓冲的输出字节。

voidwrite(byteb)throwsIOException

将b.length个字节从指定的byte数组写入此输出流。

voidwrite(byteb,intoff,intlen)throwsIOException将指定byte数组中从偏移量off开始的len个字节写入此输出流。

close()之前调用flush()把缓冲区中的剩余数据写入硬盘

Reader

继承自Reader的流都是用于向程序中输入数据,且数据的单位为字符(16bit)

(2个字节2个字节地往外读)

Writer

继承自Writer的流都是用于程序中输出数据,且数据的单位为字符(16bit);

abstractvoidclose()关闭此流,但要先刷新它。

abstractvoidflush()刷新该流的缓冲。

voidwrite(charcbuf)写入字符数组。

abstractvoidwrite(charcbuf,intoff,intlen)写入字符数组的某一部分。

voidwrite(intc)写入单个字符。

voidwrite(Stringstr)写入字符串。

voidwrite(Stringstr,intoff,intlen)

写入字符串的某一部分。

节点流类型:

类型字符流字节流

File(文件)FileReaderFileWriterFileInputStreamFileOutputStreamMemoryArrayCharArrayReaderCharArrayWriterByteArrayInputStreamByteArrayOutputStreamMemoryStringStringReaderStringWriterPipe(管道)PipedReaderPipedWriterPipedInputStreamPipedOutputStream

(Stream结尾的都是字节,Writer和Read结尾的都是字符)

FileInputStream(Filefile)通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的File对象file指定。

FileInputStream(Stringname)通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的路径名name指定。

FileOutputStream(Filefile)

创建一个向指定File对象表示的文件中写入数据的文件输出流。

FileOutputStream(Filefile,booleanappend)

FileOutputStream(Stringname)

创建一个向具有指定名称的文件中写入数据的输出文件流。

FileInputStream和FileOutputStream类支持父类InputStream和OutputStream提供的数据读写方法

处理流类型

处理类型字符流字节流

BufferingBufferedReaderBufferedWriterBufferedInputStreamBufferedOutputStreamFilteringFilterReaderFilterWriterFilterInputStreamFilterOutputStreamConvertingbetweenbytesandcharacterInputStreamReaderOutputStreamWriterObjectSerializationObjectInputStreamObjectOutputStreamDataconversionDataInputStreamDataOutputStreamCountingLineNumberReaderLineNumberInputStreamPeekingaheadPushackReaderPushhackInputStreamPrintingPrintWriterPrintStream

(1)缓冲流:

缓冲流要"

套接"

在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,增加了一些新的方法

J2SDK提供了4种缓冲流:

BufferedReaderBufferedWriterBufferedInputStreamBufferedOutputStream

构造方法:

BufferedReader(Readerin)

创建一个使用默认大小输入缓冲区的缓冲字符输入流。

BufferedReader(Readerin,intsz)//sz为自定义缓冲区大小

创建一个使用指定大小输入缓冲区的缓冲字符输入流。

BufferedWriter(Writerout)

创建一个使用默认大小输出缓冲区的缓冲字符输出流。

BufferedWriter(Writerout,intsz)

创建一个使用指定大小输出缓冲区的新缓冲字符输出流。

BufferedInputStream(InputStreamin)

创建BufferedInputStream并保存其参数,即输入流in,以便将来使用。

BufferedInputStream(InputStreamin,intsize)

创建具有指定缓冲区大小的BufferedInputStream,并保存其参数,即输入流in,以便将来使用。

BufferedOutputStream(OutputStreamout)

创建一个新的缓冲输出流,以将数据写入指定的基础输出流。

BufferedOutputStream(OutputStreamout,intsize)

创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的基础输出流。

缓冲输入量支持其父类(java.io.FilterInputStream)的mark和reset方法

BufferedReader提供了readLine方法用于读取一行字符串(以\r或\n分割)

BufferedWriter提供了newLine用于写入一个行分隔符

对于输出缓冲流,写出的数据会先在内存中缓存,使用flush方法会使内存中的数据立即写出。

举例

(1)

//BufferedInputStreamimportjava.io.*;

publicclassTestBufferStream1{

publicstaticvoidmain(Stringargs){

try{

FileInputStreamfis=newFileInputStream("

D:

/java/TestR.java"

);

BufferedInputStreambis=newBufferedInputStream(fis);

//套接在节点流上

intc=0;

System.out.println(bis.read());

//112System.out.println(bis.read());

//117bis.mark(100);

//标记标到100,从第100个字符开始往外读

for(inti=0;

i=10&

&

(c=bis.read())!

=-1;

i++){

System.out.print((char)c+"

"

}

System.out.println();

bis.reset();

//又回到刚才标记的第100个字符的点

//char强制转化成字符,注意这有个里ASCII码回车:

13换行:

10,可以去掉char看到

bis.close();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1