IO流(字符流:转换流)
来源:互联网 发布:游戏王决斗盘 淘宝 编辑:程序博客网 时间:2024/05/16 12:02
IO流(字符流:转换流)
**字符输入流:** *public InputStreamReader(InputStream in):默认的编码格式(一般使用这个)* public InputStreamReader(InputStream in,String charsetName):指定的编码格式 字符输入流= 字节输入流+ 编码表:将字节流转换成字符流 转换流:非常麻烦,本身就比代码书写量大 便捷类: *FileReader(File file);(建议使用)* 常用的方法: public int read():读取单个字符 public int read(char[] cbuf, int offset,int length):读取字符数组(读取的是实际长度)**字符输出流:** public OutputStreamWriter(OutputStream out):默认编码:采用的格式:gbk格式 public OutputStreamWriter(OutputStream out,Charset cs):指定编码表 有5个写数据的方法: public void write(int c):写单个字符 public void write(char[] cbuf):写一个字符数组 public abstract void write(char[] cbuf, int off,int len):字符数组的一部分 public void write(String str):写字符串 public void write(String str, int off,int len):写一部分字符串 flush():刷新该流的缓冲!面试题:close()方法和flush()方法的区别? close():关闭跟该流相关的资源,并且关闭之前,一定要刷新,防止出现没有写进去的情况,关闭之后不能在写数据了! flush():刷新缓冲的流,刷新之后,还可以给文件中写数据需求: 将e:\\a.txt文件读取到e:\\b.txt文件中代码: public static void main(String args[]){ //第一种方法 InputStreamReader isr =new InputStreamReader(new FileInputStream("e:\\a.txt")) ; OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("e:\\b.txt")) ; ////第二种方法 FileReader fr = new FileReader("e:\\a.txt"); FileWriter fw = new FileWriter("e:\\b.txt"); //一次读取一个字符 int ch ; while((ch= isd.read()) != -1){ osw.write(ch); osw.flush(); } //一次读取一个字符数组 char[] ch = new char[1024]; int len; while((len = isd.read(ch))!= -1){ osw.write(ch,0,len); osw.flush(); } isd.close(); osw.close(); }
String类的方法:
public byte[] getBytes(Charset charset) throws UnsupportedEncodingException :将String类型转换成字节数组:编码 把能看懂的编写成了看不懂的数据 public String(byte[] bytes,String charsetName):将byle类型的数组转换成String类型:解码 把看不懂的数据转换成了一个能懂的字符串
举例:谍战片(发送端和接收端)
发送:今天老地方见
能看懂的数据—>看不懂的 : 编码
今—->字节数组—数值—->二进制数据
接收的: 看不懂的升级--->能看懂的字符串 : 译码 二进制数据---->十进制---->数值----->String类型的字符串: 今 今天老地方见! 编码解码的问题很简单:解码编码只要保证他们的编码格式一致,就不会出现乱码的情况!
代码:
public static void main(String args[])throws UnsupportedEncodingException{ String s = "我爱你"; //public byte[] getBytes(Charset charset) throws UnsupportedEncodingException byte[] bys = s.getBytes("GBK");//默认的就是jbk格式 System.out.println(Arrays.toString(bys)); System.out.println("~~~~~~~~~~~~~"); //public String(byte[] bytes,String charsetName) String ss = new String(bys,"GBK"); System.out.println(ss);}
结果:
[-50, -46, -80, -82, -60, -29] ~~~~~~~~~
我爱你
阅读全文
0 0
- IO流(字符流:转换流)
- IO-字节、字符转换流
- IO流(转换流的字符编码)
- IO-04字节-字符转换流
- IO之字节字符转换流
- IO流-字符编码表转换示例
- io-字节和字符转换流
- JavaSE---IO流(字节流、转换流、字符流)
- IO流中的字符流(转换流),缓冲字符流
- IO流七:字符编码、转换流的字符编码、编码与解码、IO流练习
- IO流加强之转换流字符编码转换演示(读,写)
- IO(三)字符流
- IO(输入输出)-字符流
- 字符IO&数据流IO&对象流IO
- java基础--IO流之字节、字符和转换流
- java基础之IO流 字符转换流
- IO转换流(字符流转换成字节流)
- Java IO 转换流 字节转字符流
- css selector定位元素
- 页面优化有哪些方法
- windows 2008 r2 64位下网卡
- navicat for mysql导入sql文件
- NVIDIA Jetson TX2 Qt安装与配置
- IO流(字符流:转换流)
- hdu
- Go语言中struct Tag
- Eclipse中启动报错
- flask+nginx+uwsgi
- eth/etc zcash xmr 提升算力!!devfee去除 claymore破解
- 程序元是用来改变世界的
- C语言:学生信息管理程序
- C++ 操作系统 部分笔试选择题总结