黑马程序员技术交流社区
标题:
关于文件读取流
[打印本页]
作者:
Benwolf0818
时间:
2013-3-11 11:27
标题:
关于文件读取流
本帖最后由 崔芝鲁 于 2013-3-13 10:29 编辑
我想学习java有段时间了,对何时用字节流,何时用字符流不知甚解?望高手详解
作者:
曾钦
时间:
2013-3-11 12:17
这个,看下java 毕老师的视频吧,就自学那个视频。。
里面有一集是专门讲你这个问题的。。
为了避免你偷懒,就不告诉你哪集了。哈哈
字节流:用来处理图片、音频、视频、等非文本文件时用字节流。InpusStream/OutputSteam
字符流:用来处理txt等文本文件时用字符流。Reader/Writer
作者:
张宁
时间:
2013-3-11 14:31
流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。
数据源可以是文件,内存或者网络等。
同样,当程序需要输出数据到目的地时也一 样会开启一个流,
数据目的地也可以是文件、内存或者网络等。
流的创建是为了更方便地处理数据的输入输出。
流分为字节流和字符流。字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自 动转换成字符。
字节流由InputStream和OutputStream处理,而字符流由Reader和Writer处理。Reader和Writer是Java后加入的处理类,出于让数据的处理更方便的目的。
二、字节流和字符流
如果数据流中最小的数据单元是字节,那么称这种流为字节流;如果数据流中最小的数据单元是字符,那么称这种流为字符流。在Java的IO系统中,java.io.
InputStream
和java.io.
OutputStream
分别表示
字节输入流
和
字节输出流
,java.io.
Reader
和java.io.
Writer
分别表示
字符输入流
和
字符输出流
。
I/O流的层次
1
.字节流:
从InputStream和OutputStream派生出来的一系列类。这类流以
字节
(byte)
为基本处理单位。
◇ InputStream、OutputStream
FileInputStream、FileOutputStream
PipedInputStream、PipedOutputStream
ByteArrayInputStream、ByteArrayOutputStream
FilterInputStream、FilterOutputStream
DataInputStream、DataOutputStream
BufferedInputStream、BufferedOutputStream
2
.字符流:
从Reader和Writer派生出的一系列类,这类流以
16
位的Unicode
码表示的字符
为基本处理单位。
◇ Reader、Writer
InputStreamReader、OutputStreamWriter
PipedReader、PipedWriter
FileReader、FileWriter
CharArrayReader、CharArrayWriter
FilterReader、FilterWriter
BufferedReader、BufferedWriter
StringReader、StringWriter
作者:
Benwolf0818
时间:
2013-3-11 15:28
张宁 发表于 2013-3-11 14:31
流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。数据源可以是文件,内存 ...
受教了!!
作者:
fighting
时间:
2013-3-11 23:27
文件的存储一般有两种,一种是ASCII编码的,一种是二进制形式的。
ASCII文件便于对字符进行逐个处理,也便于输出字符。但一般占存储空间较多,而且要花费转换时间。
二进制文件可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。
而java中的字符流就是用于处理ASCII编码文件,以便于对字符的操作,字节流适合二进制的操作,
当然二者之间是可以互相转化的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2