java输入输出流
http://blog.youkuaiyun.com/hguisu/article/details/7418161
标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流等等,java中将输入输出抽象称为流,就好像水管,将两个容器连接起来。将数据冲外存中读取到内存中的称为输入流,将数据从内存写入外存中的称为输出流。采用数据流的目的就是使得输出输入独立于设备。
一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。
Java中的流分为两种:
1) 字节流:数据流中最小的数据单元是字节
2) 字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。
Java中IO流的体系结构:
基本数据流的I/O:
| 输入/输出 | 字节流 | 字符流 |
| 输入流 | Inputstream | Reader |
| 输出流 | OutputStream | Writer |
字符编码相关:
Reader类能够将输入流中采用其他编码类型的字符转换为Unicode字符,然后在内存中为其分配内存
Writer类能够将内存中的Unicode字符转换为其他编码类型的字符,再写到输出流中。
import java.io.*;
public class EncodeTest {
private static void readBuff(byte [] buff) throws IOException {
ByteArrayInputStream in =new ByteArrayInputStream(buff);
int data;
while((data=in.read())!=-1) System.out.print(data+" ");
System.out.println(); in.close(); }
public static void main(String args[]) throws IOException {
System.out.println("内存中采用unicode字符编码:" );
char c='好';
int lowBit=c&0xFF; int highBit=(c&0xFF00)>>8;
System.out.println(""+lowBit+" "+highBit);
String s="好";
System.out.println("本地操作系统默认字符编码:");
readBuff(s.getBytes());
System.out.println("采用GBK字符编码:");
readBuff(s.getBytes("GBK"));
System.out.println("采用UTF-8字符编码:");
readBuff(s.getBytes("UTF-8")); }
}
本文深入探讨了Java中输入输出流的概念,包括字节流与字符流的区别,以及Java IO流体系结构。通过实例展示了如何在不同字符编码下进行字符转换。

被折叠的 条评论
为什么被折叠?



