引言
概念:"流"是一组有顺序的,有起点,有终点的字节集合.是对数据传输的总称或抽象概念."流"它既是数据在两设备间的传输,根据数据传输的特性抽象为各种类,方便进行数据操作.
Io流的分类:
根据处理数据的不同分为:字节流与字符流.
根据流向的不同分为:输入流与输出流.
字符流与字节流的区别:
字符流一般处理纯文本的数据
字节流,能处理包括(图片,文本,Avi...等)所有数据的类型.
# 纯文本数据一般建议,用字符流处理.
输入字节流:
InputStream是所有的输入字节流的父类,它是一个抽象类.
常用的输入字节流有:ByteArrayInputStream , StringBufferInputStream , FileInputStream.
输出字节流:
OutputStream是所有输出字节流的父类,它是一个抽象类.
常用的输出字节流有: ByteArrayOutputStream , FileOutputStream.
字节流示例:
//字节流读取
class ByteTest {
pulic staic void mian(String [] args) {
String fileName = "D:" + File.separate + "BaytText.txt";
File file = new File(fileName);
InputStream in = new FileInputStream(file);
byte[] b = new bybe[];
in.read(b);
in.close;
system.out.println(new String(b));
}
}
输入字符流:
Reader是所有的输入字符流的父类,它是一个父类.
常用的输入字符流有: CharReader,StringReader
输出字符流:
Writer是所有的输出字符流的父类,它是一个抽象类.
常用的输出字符流有: CharArray , StringWriter.
字符流示例:
// 字符流读取
class ReaderTest {
pulic staic void mian(String[] args) {
String fileName = "D:" + File.separator + "hello.txt";
char[] ch = new char[100];
Reader reader = new FileReader(fileName);
int count = reader.reader(ch);
reader.close().
system .out .println("文件的长度:" + count);
system.out.println("文件的内容:" + new String(ch,0,count));
}
}
关于字符流与字节流它们之间能相互转换,通过一个叫做"转化流"的流,来进行.
# InputStreamReader:字节到字符的桥梁
# OutputStreamWriter:字符到字节的桥梁