InputStreamReader介绍&代码实现

package com.yang.Test.ReverseStream;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader; /**
* java.io.InputStreamReader extends Reader
* InputSTreamReader:是字节流通向字符流的桥梁:他使用指定的charset读取字节并将其解码为字符
*
* 继承自父类的共性成员方法:
* int read()读取单个字符并且返回
* int read(char[] cbuf)一次读取多个字符,将字符读入数组
* void close()关闭此流释放与之关联的所有资源
* 构造方法:
* InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader
* InputStreamReader(InputStream in,String charsetName)创建使用指定字符集的InputStreamReader
* 参数:
* InputStream in:字节输入流用来读取文件中保存的字节
* String charsetName:指定的编码表名称,不区分大小写不指定默认使用UTF-8
*
* 使用步骤:
* 1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
* 2.使用InputStreamReader对象中的read方法读取文件
* 3.释放资源
*
* 注意事项:
* 构造方法中指定的编码表名称要和文件的编码相同,某则会发生乱码
*/
public class InputStreamReaderStudy {
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\f.txt"),"GBK"); int read = 0;
while((read = isr.read())!=-1){
System.out.println((char)read);
} isr.close();
}
}

练习_转换文件编码

将GBK编码的文本文件,转换为UTF-8编码的文本文件

案例分析:

1.指定GBK编码的转换流,读取文本文件

2.使用UTF-8编码的转换流,写出文本文件

代码实现:

package com.yang.Test.ReverseStream;

import java.io.*;

public class Test {
public static void main(String[] args) throws IOException {
//创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称GBK
InputStreamReader isr = new InputStreamReader(new FileInputStream("我是GBK.txt"),"GBK");
//创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("我是UTF-8.txt"),"UTF-8");
//使用InputStreamReader对象中的方法read读取文件
int len = 0;
while((len = isr.read())!=-1){
//使用OutputStreamWriter对象中的方法writer吧读取的数据写入到文件中
osw.write(len);
}
//释放资源
osw.close();
isr.close();
}
}

InputStreamReader介绍&代码实现和转换文件编码_练习的更多相关文章

  1. qt开发的小软件,可以递归转换文件编码(qt为了防止内存泄露所做的保护机制)

    应用场景 当你下载别人的源码的时候,而别人的源码跟你自己电脑里面的编码不一致的情况下将会出现乱码,但是如果要一个个转换编码的话那么那样所需要花的时间太多,所以就有必要写一个软件递归遍历项目下面所有的文 ...

  2. 使用windows命令和iconv.exe批量转换文件编码

    iconv是知名的开源跨平台编码转换库,iconv.exe是iconv库在windows下的命令行工具,iconv.exe的一般用法:iconv.exe -f gbk -t utf-8 gbk.txt ...

  3. linux iconv 转换文件编码

    查看文件编码file -i filename 递归转换(包括子文件夹)find default -type d -exec mkdir -p utf/{} \;find default -type f ...

  4. 格式化MyEclipse代码(java、jsp、js)行的长度@修改java代码字体@修改Properties文件编码方式

    每次用MyEclipse/Eclipse自带的快捷键Ctrl+shift+f格式化代码时,如果原来的一行代码大于80列,Eclipse就会自动换为多行.如果想格式化代码后不想让代码换行可以通过以下方式 ...

  5. Linux平台上转换文件编码

    Linux系统的iconv指令是一个很好的文件编码转换工具,支持的编码范围广,使用方便,例如将一个utf-8编码的文件(名为tic)转换为gbk编码: iconv -f utf-8 -t gbk ti ...

  6. mac 查看文件编码及转换文件编码

    方法是用vim , vim 打开相应文件, :set fileencoding即可显示文件编码格式 将文件编码转换为utf-8 :set fileencoding=utf-8

  7. OutputStreamWriter介绍&代码实现和InputStreamReader介绍&代码实现

    java.io.OutputStreamWriter extends Writer OutputStreamWriter: 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编 ...

  8. Linux下批量转换文件编码

    find -iname "*.java" -exec enca {} + |grep -v ASCI |grep -v -i utf |awk -F':' '{print $1}' ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_6_练习_转换文件编码

随机推荐

  1. Centos7最小化安装报错There are no enabled repos. Run "yum repolist all" to see the repos you have.解决办法

    原因是缺少CentOS-Base.repo文件,因为我这台机器wget也不能用,所以我是下载到本地sftp上去的,传输的时候一定要在root用户下,否则会无法启动传输 这是报错的完整信息:Loadin ...

  2. 面试官:BIO、NIO、AIO是什么,他们有什么区别?

    哈喽!大家好,我是小奇,一位热爱分享的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 书接上回,感觉上次的公司氛围不 ...

  3. 2020级cpp机考模拟题A卷-#题解2

    这部分的题目都有一定难度,有兴趣的同学可以钻研一下. 特此感谢来自BDT20030  tql的支持. 2:素数的和-2 题意: 计算不大于m的素数之和.(多么容易理解的题目啊,对吧) 题解(有点复杂的 ...

  4. monit 配置详解(monitrc)

    monitrc是Monit的主配置文件(控制文件). monitrc的内容主要分为全局(golbal)和服务(services)两个部分. 默认情况下monitrc文件在/etc/monit目录下. ...

  5. MATLAB调用NASTRAN的连续计算解决方案

    使用MATLAB调用NASTRAN提交bdf文件计算的方法笔者试过几种,分别做一下介绍 MATLAB直接调用操作系统命令 该方法对单次计算可能方便些,定义一个字符串,并使用eval命令调用,具体格式为 ...

  6. String 为什么不可变?

    转载来源:String为什么不可变 今天来分享一道群友去阿里云面试遇到的 Java 基础面试真题:"String.StringBuffer.StringBuilder 的区别?String ...

  7. MVC - MVC的工作流程

    MVC 是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应 ...

  8. django框架6

    内容概要 神奇的双下划线查询 外键字段的创建 外键字段操作 多表查询 基于对象的跨表查询 基于双下划线的跨表查询 双下线查询扩展 如何查看SQL语句 内容详情 神奇的双下划线查询 1.查询年龄大于20 ...

  9. YAML在线验证

    推荐一个网站:YAML在线验证https://www.bejson.com/validators/yaml_editor/

  10. 表达式的动态解析和计算,Flee用起来真香

    前言 在很多项目中经常会出现需要动态解析表达式和计算的场景,比如一些自动审核规则,或者是一些变量的值通过维护的公式在运行过程中动态算出:由于场景需求,都需要比较灵活的配置对应的表达式,然后希望在需要的 ...