首页 > 其他分享 >转换流

转换流

时间:2022-09-21 20:56:17浏览次数:53  
标签:转换 字节 isr len new InputStreamReader cbuf

转换流

一,转换流的使用

1.转换流:属于字符流
InputStreamReader:将一个字节的输入流转换为字符的输入流
OutputStreamWriter:将一个字符的输出流转换为字节的输出流
2.作用:提供字节流与字符流之间的转换

3.解码:字节、字节数组 --->字符数组、字符串
编码:字符数组、字符串 ---> 字节、字节数组

二,InputStreamReader的使用,实现字节的输入流到字符的输入流的转换
//时处理异常的话,仍然应该使用try-catch-finally
@Test
    public void test1() throws IOException {
        FileInputStream fis = new FileInputStream("dbcp.txt");//字节流
//        InputStreamReader isr = new InputStreamReader(fis);//使用系统默认的字符集
        //参数2 指明了字符集,具体使用哪个字符集,取决于文件dbcp.txt保存的字符集
        InputStreamReader isr = new InputStreamReader(fis,"UTF-8");//使用系统默认的字符集

        char[] cbuf = new char[20];
        int len;
        while ((len = isr.read(cbuf)) != -1){
            String str = new String(cbuf,0,len);
            System.out.print(str);
        }
        isr.close();
    }
三,综合使用InputStreamReader和OutputStreamWriter
//时处理异常的话,仍然应该使用try-catch-finally
@Test
public void test2(){
    InputStreamReader isr = null;
    OutputStreamWriter osw = null;
    try {
        FileInputStream fis = new FileInputStream(new File("dbcp.txt"));
        FileOutputStream fos = new FileOutputStream(new File("dbcpGBK.txt"));

        isr = new InputStreamReader(fis,"UTF-8");
        osw = new OutputStreamWriter(fos,"GBK");

        //读写过程
        char[] cbuf = new char[20];
        int len ;
        while ((len = isr.read(cbuf)) != -1){
            osw.write(cbuf,0,len);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (osw!=null){
            try {
                osw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        if (isr!=null){
            try {
                isr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

标签:转换,字节,isr,len,new,InputStreamReader,cbuf
From: https://www.cnblogs.com/blwx/p/16717105.html

相关文章

  • 【SQL 编程你也行】SQL Server 2012新功能之函数:转换函数
    在SQLServer2012中,新增了几个转换函数,用于支持数据类型的强制转化。由于之前主要用的是SQLServer2008R2,而公司的项目为了提高开发效率,很多表的列都为varchar类型,但也......
  • Python学习:转义字符及用法、数据类型转换函数
    ASCII编码为每个字符都分配了唯一的编号,成为编码值。在Python中,一个ASCII字符除了可以用它的实体(真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符......
  • vue3源码学习11-编译two-AST内部转换
    在编译one中,template经过解析最终返回了一个AST节点对象,它是对模板的完整描述,但是还是不能用于生成代码,因为语义化还不够,没有包含编译优化相关的属性,vue内部还进行了进一步......
  • 【中科三方】IPv4向IPv6转换的几种技术分析,ipv6转换注意事项
    一、IPv6介绍随着互联网技术的不断发展,IPv4的许多缺陷逐渐暴露出来,其中最突出的是IP地址空间将被耗尽和主干路由表不断增长的问题。为了扩大地址空间,拟通过IPv6重新定义地......
  • 网页转换成电脑exe软件
    1、首先电脑需要有node环境。npm-v检查是否安装成功,出现nodejs的版本号,说明安装成功2、安装nativefiernpminstallnativefier-g 打包地址nativefier--nam......
  • 类型转换
    类型转换1.代码块 packagemyaction;​publicclassDemo2{publicstaticvoidmain(String[]args){inti=128;byteb=(byte)i; //内存......
  • C++ time_t与格式化日期时间字符串的转换
    开发中对于特定格式的日期和格式获取很常见,这里给出一系列工具函数:#include<time.h>#include<sstream>usingnamespacestd;//time转格式化字符串=============......
  • CSS3转换
    简介CSStransform属性允许你旋转,缩放,倾斜或平移给定元素。这是通过修改CSS视觉格式化模型的坐标空间来实现的。转换(transform)你可以简单理解为变形。只能转换由......
  • 计算机基础二进制转换定理
    在计算机中所有的二进制都使用补码表示的1.任何数和0相乘都等于02.任何数的0次方=13.小数除大数商为0于数为它本身4.数的负次方5.商和于数的问题 数码十六进制......
  • 【亲测可用】将Evernote的enex文件转换为Markdown!
    enex文件转换为MarkdownEvernote2md是一个桌面工具,可将以*.enex格式导出的Evernote笔记转换为带有markdown文件的目录。先从印象笔记导出 enex格式。然后选取enex格式......