资源描述:
《java字节流深入研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1字节流读取中文的问题FilelnuptStreamDemo.javapackagecn.itcast_01;importjava.io.FilelnputStream;importjava.i0」OException;/**字节流读取中文可能出现的小问题:*/publicclassFilelnputStreamDemo{publicstaticvoidmain(String[]args)throwslOException{//创建字节输入流对象FilelnputStreamfis=newFilelnputStream(”a.txt”);//读
2、取数据//intby=0;//while((by=fis.read())!=-1){//System.out.print((char)by);//}byte[]bys=newbyte[1024];intlen=0;while((len=fis.read(bys))!=-1){System.out.print(newString(bys,0,len));//释放资源fis.close();}}StringDemo.javapackagecn.itcast_O1;importjava.io.UnsupportedEncodingException;
3、importjava.util.Arrays;/**String(byte[]bytes,StringcharsetName):通过指定的字符集解码字节数组*byte[]getBytes(StringcharsetName):使用指定的字符集合把字符串编码为字节数组**编码:把看得懂的变成看不懂的*String-byte[]**解码:把看不懂的变成看得懂的*byte[]-String**举例:谍战片(发电报,接电报)**码表:小本子*字符数值要发送一段文字:今天晚上在老地方见发送端:今-数值-二进制-发出去接收端:接收-二进制-十进制-数值-字
4、符-今今天晚上在老地方见*编码问题简单,只要编码解码的格式是一致的。*/publicclassStringDemo{publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{Strings=”你好”;//String-byte[]byte[]bys=s.getBytes();//[-60,-29,-70,-61]//byte[]bys=s.getBytes(”GBK”);〃[-60,-29,-70,-61]//byte[]bys=s.getBytes(nUTF-8H
5、);//[-28,-67,-96,-27,-91,-67]System.out.println(Arrays.toString(bys));//byte[]--StringStringss=newString(bys);//你好//Stringss=newString(bys,”GBK”);〃你好//Stringss=newString(bys,”UTF・8”);//???System.out.println(ss);3默认编码转字符流InputStreamReader.javapackagecn.itcast_02;importjava.io
6、.FilelnputStream;importjava.i0」OException;importjava.io.InputStreamReader;/**lnputStreamReader(lnputStreamis):用默认的编码读取数据*lnputStreamReader(lnputStreamis,StringcharsetName):用指定的编码读取数据*/publicclassInputStreamReaderDemo{publicstaticvoidmain(String[]args)throwslOException{//创建对象
7、//InputStreamReaderisr=newInputStreamReader(newFilelnputStream(//"osw.txt"));//InputStreamReaderisr=newlnputStreamReader(newFilelnputStream(//“osw.txt”),”GBK“);InputStreamReaderisr=newlnputStreamReader(newFilelnputStream(“osw.txt”),”UTF・8”);//读取数据//一次读取一个字符intch=0;while((ch=
8、isr.read())!=-1){System.out.print((char)ch);}//释放资源isr.close();}}OutputStre