`

黑马程序员--流的一些概念

 
阅读更多

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ---------------------

流作为java中最重要的技术,实现了各种设备之间的数据传递,学java的人不搞明白流是什么概念肯定是不行的。

流简单的说就是设备之间传送数据的管道,管道上面有一些按钮可以对数据进行一些操作。流有两种最基本的类型:字符流和字节流,字符流针对的是文本数据,操作起来会非常方便,字节流则可以操作任何数据,字节流可以转化成为字符流,这相当于用特定编码将字节转换成字符,这个过程可以指定字符集,当然,如果字符集没选对的话,就出现乱码了。

 

另外,流还可以分为输出流Writer、OutputStream 和读取流Reader、InputStream,这四种流是最基本的流,其他的流类基本都是这四种流的子类,除了一个特殊的RandomAccessFile,这个类既提供了读取的功能,也提供了输出的功能,而且输出和读取都可以从文件的指定位置开始,不想其他的流需要从头到尾按顺序来。

 

Wirter、OutputStream 最常用的方法就是 write(), flush(), close()这里面要注意用write写字符时,要使字符换行要用转义字符"\r\n",为什么不用"\n"? 因为记事本不识别单个的"\n",而"\r\n"所有的文本软件都识别。另外用BufferedWriter 还可以使用newLine()方法来换行.

Reader、InputStream最常用的方法有read(),close()用BufferedReader还可以使用readLine() 来读取一行。

 

要注意的是write(数组, 角标1, 角标2) 的意思是将数组从角标1到角标2(不包括角标2)中的数据写到指定目标文件read(数组, 角标1, 角标2)的意思是将读取到的数据放到数组中,从角标1开始到角标2结束,并返回读取数据的个数。

 

操作流的基本规律:

    1、明确源和目的    源:输入流   目的:输出流

    2、操作的数据是否为纯文本

              是:字符流

              不是:字节流

    3、当体系明确后,再明确要使用哪个具体的对象

         源设备:内存,硬盘(文件),键盘

         目的   :内存,硬盘,控制台

 

一些常用的流,需要看到就知道怎么用:

输入流:FileReader FileInputStream BufferedReader BufferedInputStream  InputStreamReader  ByteArrayInputStream  DataInputStream  CharArrayReader  ObjectInputStream PipedInputStream PipedReader等,输出流基本都能知道到对应的

 

其他的一些:PrintStream   PrintWriter   SequenceInputStream  RandomAccessFile等。

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics