使用jdk1.6中提供的类和方法,设计一个类或方法,从一个字节输入流中正确的读取输入流的内容。1、软件的IO逻辑是根据读取到的“字符”改变的,不是“字节”!2、给定的字节流编码是变...
使用jdk1.6中提供的类和方法,设计一个类或方法,从一个字节输入流中正确的读取输入流的内容。
1、软件的IO逻辑是根据读取到的“字符”改变的,不是“字节”!
2、给定的字节流编码是变动的,但在变动前会用采用了前一编码格式的内容提示接下来的内容的编码格式。如:每当读到“下一编码:xxx”那么,在“xxx”之后的字节都将采用“xxx”格式的进行编码。
3、起始的输入流为UTF-8编码,内容长度不确定。
4、所提供的字节流本身不具备mark和reset等功能,需自己缓存数据。
字节流的源:
String[] charset = {"utf-8","gbk","gb2312","unicode"};
String rdStr = "这是随机的文字序列123,包含重要信息的字符串结构,有字符判断处理,这是随机的文字序列¥……";
OutputStream out = getOutputStream();
String next = "下一编码:";
Random rand = new Random(System.currentTimeMillis());
int ni = Random.nextInt() % 4,last;
out.write((next+charset[ni]).getBytes(charset[ni]));
out.flush();
int i = 10;
String str = null;
while(i-->0){
str = rdStr.substring(ni, rdStr.length() - ni);
out.write(str.getBytes(charset[ni]));
out.write(str.getBytes(charset[ni]));
last = ni;
ni = rand.nextInt() % 4;
out.write((next+charset[ni]).getBytes(charset[last]));
}
out.flush();
要解析上面这样的流应该如何设计?
ps:越简单越好,不求高效,只希望有一个返回char类型的同步的read()方法以及可以随时改变read()编码的方法,因为高层逻辑要即使的做字符处理并反馈。如果有更好的解决方案,愿洗耳恭听。
展开