【马士兵】笔记_Java IO流

有道云笔记 连接:

http://note.youdao.com/share/?id=7a322ea0150fbc678da417d68f53c9f4&type=note


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以下可忽略:




 

 Java IO流》

 

 

把“流(Stream)”想象成捅在文件上的“管道”。

 

做一些个IO系统的项目用到的是这章内容。

 

 

输入/输出的方向是按程序(而不是文件来讲的)。从文件中读数据--输入流;往文件里写数据--输出流。

1字符 = 2字节。Java中是UNICODE字符串,UTF-16

Stream结尾的都是字节流

InputStreamOutputStreamReaderWriter都是抽象类(非接口)。

 

String直接写出的方法voidwrite(Stringstr)thorowsIOException是用到了String的一个构造方法,能将字符串转化为字符数组char[]

总结

JavaIO流,使用了装饰模式InputStream只能读字节、Byte[]数组,

reader的可以读char; 如果在reader上再装饰一层buffered,那么就可以读String,方法是readline()

BufferedReaderBufferedWriter很普遍。readLine()BufferedReader的好处之一,读一行。

注意InputStreamReaderReader的区别,前者是针对InputStream对象的,后者是针对File的。一个是处理流,一个是节点流。

ISO8859_1 欧洲的字符编码,包含所有西欧语言。也叫latin-1

unicode包含所有语言的编码集。包括utf-8utf-16等。

GB**** 中文(国标)编码集。包括GBKGB2312等。

上例,BufferedReader的封装是为了使用readLine()方法,常用。System.in:接收的是键盘输入,类型是InputStream

上例,演示了处理流套装节点流。ByteArrayOutputStream,这种输出流将数据按“字节串”输出(而不是OutputStream的一个个字节输出);这样,进一步用DataOutputStream套装,就可以将数据按doubleboolean等类型(分别占81个字节)直接写入,用的writeDouble()writeBoolean()方法。

DataInputStream在网络传输中用于读取远端传过来的地址等信息(直接按int读)。

Object序列化,最常见的例子是:Word中画一个矩形(或三角形等形状),是把这个矩形的信息放在一个Object中,存起来;下次启动Word时自动调取这个Object重新画出来。电子游戏的存盘,也是将当前场景中的所有按Object存起来。

注意,serializable接口是一个标识性接口,里面没有方法。这个标志是给编译器看的。

上例,transient,“透明的”,表示在序列化的时候不考虑进去。当把一个T对象序列化又反序列化后,ijd的值不变,但是k的值是0.说明序列化的时候没有把k算进去。







email: [email protected]




猜你喜欢

转载自blog.csdn.net/na_simon2900086/article/details/53167385