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_练习_转换文件编码
随机推荐
- 羽夏 Bash 简明教程(下)
写在前面 该文章根据 the unix workbench 中的 Bash Programming 进行汉化处理并作出自己的整理,并参考 Bash 脚本教程 和 BashPitfalls 相关内容 ...
- 被迫开始学习Typescript —— class
TS 的 class 看起来和 ES6 的 Class 有点像,基本上差别不大,除了 可以继承(实现)接口.私有成员.只读等之外. 参考:https://typescript.bootcss.com/ ...
- 论文阅读 DyREP:Learning Representations Over Dynamic Graphs
5 DyREP:Learning Representations Over Dynamic Graphs link:https://scholar.google.com/scholar_url?url ...
- Typora 开始收费,改用好玩的MarkText
收费-- 可以考虑使用:MarkText 简述MarkText MarkText 这个工具侧重于"命令",导航栏都被收起来了.有些小伙伴感觉反而不好用,其实不然,是未了解该工具的强 ...
- 【多线程】JUC版的CopyOnWriteArrayList
CopyOnWriteArrayList CopyOnWriteArrayList适合于多线程场景下使用,其采用读写分离的思想,读操作不上锁,写操作上锁,且写操作效率较低. CopyOnWriteAr ...
- MySQL(8) - MySQL的事务机制
MySQL数据库的事务机制 1.1.事务的概念和特性 1.2.事务的隔离级别 repeatable read是mysql默认的事务隔离级别 #事务A #事务A,临时修改工资,未commit, STAR ...
- STM32启动文件
一.复位电路 在了解启动文件之前需要明白STM32的复位中断流程,STM32的复位分为上电复位和手动复位,复位的电路图如下所示: 注意: 图中的复位电路是低电平复位,有的MCU是高电平复位. 上电复位 ...
- 毕设(1)——机械臂DH建模
目录 毕设(1)--机械臂DH建模 改进DH参数表 Matlab代码验证 毕设中用到了很多代码,其中一部分我通过看书和看论文学习并实现的代码,会通过Gitee仓库分享出来,这些代码仅用于学习使用,祝各 ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- hibernate-validator的基本使用
validator是用来校验参数使用! 一般来说校验参数的工作可以放在前端去执行,但是假如有人不经过前端直接调用后端的接口呢?很可能就出现非法数据而导致一些问题,所有服务端也要做数据的校验. 前端校验 ...