InputStreamReader介绍&代码实现和转换文件编码_练习
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介绍&代码实现和转换文件编码_练习的更多相关文章
- qt开发的小软件,可以递归转换文件编码(qt为了防止内存泄露所做的保护机制)
应用场景 当你下载别人的源码的时候,而别人的源码跟你自己电脑里面的编码不一致的情况下将会出现乱码,但是如果要一个个转换编码的话那么那样所需要花的时间太多,所以就有必要写一个软件递归遍历项目下面所有的文 ...
- 使用windows命令和iconv.exe批量转换文件编码
iconv是知名的开源跨平台编码转换库,iconv.exe是iconv库在windows下的命令行工具,iconv.exe的一般用法:iconv.exe -f gbk -t utf-8 gbk.txt ...
- linux iconv 转换文件编码
查看文件编码file -i filename 递归转换(包括子文件夹)find default -type d -exec mkdir -p utf/{} \;find default -type f ...
- 格式化MyEclipse代码(java、jsp、js)行的长度@修改java代码字体@修改Properties文件编码方式
每次用MyEclipse/Eclipse自带的快捷键Ctrl+shift+f格式化代码时,如果原来的一行代码大于80列,Eclipse就会自动换为多行.如果想格式化代码后不想让代码换行可以通过以下方式 ...
- Linux平台上转换文件编码
Linux系统的iconv指令是一个很好的文件编码转换工具,支持的编码范围广,使用方便,例如将一个utf-8编码的文件(名为tic)转换为gbk编码: iconv -f utf-8 -t gbk ti ...
- mac 查看文件编码及转换文件编码
方法是用vim , vim 打开相应文件, :set fileencoding即可显示文件编码格式 将文件编码转换为utf-8 :set fileencoding=utf-8
- OutputStreamWriter介绍&代码实现和InputStreamReader介绍&代码实现
java.io.OutputStreamWriter extends Writer OutputStreamWriter: 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编 ...
- Linux下批量转换文件编码
find -iname "*.java" -exec enca {} + |grep -v ASCI |grep -v -i utf |awk -F':' '{print $1}' ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_6_练习_转换文件编码
随机推荐
- 对象、Map、Set、WeakMap、WeakSet
对象.Map.Set.WeakMap.WeakSet 本文写于 2020 年 11 月 24 日 总的来说,Set 和 Map 主要的应用场景分别在于数据重组和数据储存.Set 是一种叫做「集合」的数 ...
- Sharding JDBC案例实战
基础分库 以下实例基于shardingsphere 4.1.0 + SpringBoot 2.2.5.RELEASE版本 依赖导入: <properties> <project.bu ...
- Spring Boot下Spring Batch入门实例
一.About Spring Batch是什么能干什么,网上一搜就有,但是就是没有入门实例,能找到的例子也都是2.0的,看文档都是英文无从下手~~~,使用当前最新的版本整合网络上找到的例子. 关于基础 ...
- 详解TCP三次握手(建立TCP连接过程)
在讲述TCP三次握手,即建立TCP连接的过程之前,需要先介绍一下TCP协议的包结构. 这里只对涉及到三次握手过程的字段做解释 (1) 序号(Sequence number) 我们通过 TCP 协议将数 ...
- 好客租房15-jsx中的条件渲染
jsx中的条件渲染 场景:loding效果 条件渲染:根据条件渲染特定的jsx结构 可以使用if/else或者三元运算符和逻辑和运算符实现 //导入react import React from &q ...
- java继承中关于super关键字和this关键字的使用
1.super关键字 由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字.super 可以用来访问父类的构造方法.普通方法和属性.super 关键字的功能: ...
- VS Code官方插件集与工具
如果您也使用VS Code作为CabloyJS项目开发的主编辑器,那么可以参考官方使用的插件集,此外也提供了一些周边工具 这是官方亲测可用的最简插件集,再也不必东奔西走了 插件集 插件名称 用途 Vi ...
- Keytool配置 Tomcat的HTTPS双向认证
Keytool配置 Tomcat的HTTPS双向认证 证书生成 keytool 简介 Keytool是一个Java数据证书的管理工具, Keytool将密钥(key)和证书(certificates) ...
- web自动化之元素定位篇
一.web自动化元素定位的方式有8种.------腾讯课堂 1.1 id定位: 1.2 class定位: 1.3 classname定位 1.4 tag_name 1.5
- DirectX11 With Windows SDK--06 使用ImGui
前言 Dear ImGui是一个开源GUI框架.除了UI部分外,本身还支持简单的键鼠交互.目前项目内置的是V1.87版本,大概半年时间会更新一次版本,并且对源码有小幅度调整. 注意:直接下载源码使用会 ...