JAVA本地读取文件,解决中文乱码问题

时间:2022-09-18 15:39:53

JAVA本地读取文件出现中文乱码,查阅一个大神的博客做一下记录

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;

public class InPutcopy {

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

File file=new File("C:\\Users\\绝影\\Desktop\\桌面.txt");//创建一个新的file实例
File fi=new File("C:\\Users\\绝影\\Desktop\\7777.txt");

//读出对应输入流
InputStream input = null;
OutputStream out = null;
InputStreamReader inp=null;
OutputStreamWriter ou=null;
BufferedReader reader=null;
BufferedWriter write=null;
try {

input = new FileInputStream(file);
inp=new InputStreamReader(input,"GBK");//字节流字符流转化的桥梁
out=new FileOutputStream(fi);//建立文件字节输出流
ou=new OutputStreamWriter(out);//字节流字符流转化的桥梁

write= new BufferedWriter(ou);//缓冲读取字符 将字节流封装成BufferedReader对象
reader = new BufferedReader(inp);//以字符流方式读入

char a[]=new char[21];
byte b[]=new byte[21];

FileReader filer=new FileReader(file);
FileWriter filer1=new FileWriter(fi);

/* 中文不会乱码*/
reader.read(a);
write.write(a);
 
/* 中文不会乱码*/
/*inp.read(a);
ou.write(a);*/

//中文不会乱码
/*input.read(b);
out.write(b);*/

//input.read(b);//放入字节数组  
//字节数组的read方法的源码,下面可知input.read(b)不会导致数组越界,就是担心文件内容放不了进入数组的情况,因为这个read方法本身
//数组放入多少是已经固定的,并非将文件内容一下子全部放入,所以不会有越界情况
/*public int read(byte b[]) throws IOException {
         return read(b, 0, b.length);
     }*/

for(int i=0;i<21;i++) {
//System.out.println(b[i]);//48---57
System.out.println(a[i]);//这里不懂,BufferedReader中的参数换inp后前面的部分字符没有输出
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
inp.close();
ou.close();
input.close();
out.close();
//reader.close();
//write.close();//这里把输出流关闭也会和write.flush()一样的效果,有点类似数据库的事务提交
}

}

}

JAVA本地读取文件,解决中文乱码问题的更多相关文章

  1. JAVA本地TXT文件解决中文乱码问题

    import java.io.*; public class ReadFile { public static void main(String[] args) { try { File file = ...

  2. java解压多目录Zip文件&lpar;解决中文乱码问题&rpar;--转载

    原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.F ...

  3. java web 中有效解决中文乱码问题-pageEncoding与charset区别&comma; response和request的setCharacterEncoding 区别

    这里先写几个大家容易搞混的编码设置代码: 在jsp代码中的头部往往有这两行代码 pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码J ...

  4. Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  5. node&period;js在读取文件时中文乱码问题

    断更很久了........从今天开始会努力的持续更博,积极学习. 言归正传.今天在写node.js的demo时发现一个bug.我在node中读取本地的text文件时,发现英文的内容可以被读取,但是中文 ...

  6. android 读取本地json文件 解决显示乱码显示

    1.读取本地JSON ,但是显示汉字乱码 public static String readLocalJson(Context context,  String fileName){         ...

  7. Java下载文件解决中文乱码问题

    直接上代码 /** * @desc 下载已存在的文件 */ public void sendFile(HttpServletRequest request, HttpServletResponse r ...

  8. Qt读取文件时中文乱码问题

    在默认情况下,Qt 以 Unicode 格式处理文本字符,因此,字符本身是不会有问题的.之所以出现乱码,原因在于 Qt 不知道将 Unicode 字符以何种方式显示出来.        文本文件含有简 ...

  9. Java ZIP压缩和解压缩文件&lpar;解决中文文件名乱码问题&rpar;

    Java ZIP压缩和解压缩文件(解决中文文件名乱码问题) 学习了:http://www.tuicool.com/articles/V7BBvy 引用原文: JDK中自带的ZipOutputStrea ...

随机推荐

  1. &lbrack;IOS 开发&rsqb; NSDateFormatter的格式字符串 -- 《整理的笔记》

    在ios开发中, OBjective-C中的NSDate是一个挺讨厌的类型, 自己找不到转换成字符串的类型,还得带一个NSDateFormatter的类型. 官方文档上对NSDateFormatter ...

  2. ZOJ1913 Euclid&&num;39&semi;s Game (第一道简单的博弈题)

    题目描述: Euclid's Game Time Limit: 2 Seconds      Memory Limit: 65536 KB Two players, Stan and Ollie, p ...

  3. WPF 保存文件

    private void button2_Click(object sender, RoutedEventArgs e) { var saveFileDialog1 = new SaveFileDia ...

  4. SQL也能玩递归

    最近在做项目的时候遇到一个表,将省市区都放到一个表里存储,通过父ID字段来表示省市区的关系. 创建表语句 CREATE TABLE [dbo].[Table_6]( [id1] [int] NOT N ...

  5. &lbrack;2014-12-30&rsqb;如何动态构造Lambda表达式(动态构造Lambda查询条件表达式)

    声明 本文对Lambda表达式的扩展,示例代码来源于网络. 场景描述 web开发查询功能的时候,如果查询条件比较多,就会遇到动态组合查询条件的情况.在手写sql的情况下,我们一般会根据传入的参数,针对 ...

  6. ROS&lpar;indigo&rpar; turtlebot2 &plus; android一些有趣应用

    ROS和Android配合使用非常有趣,这里推荐,ROSClinet,使用rosbridge让android和ROS通信: 具体参考奥斯卡的个人剧场:http://xxhong.net/ turtle ...

  7. 关于Redis处理高并发

    Redis的高并发和快速原因 1.Redis是基于内存的,内存的读写速度非常快: 2.Redis是单线程的,省去了很多上下文切换线程的时间: 3.Redis使用多路复用技术,可以处理并发的连接.非阻塞 ...

  8. docker镜像无法下载或者下载缓慢

    解决docker镜像无法下载的问题 2015年10月02日 16:01:05 阅读数:20776 克服跨洋网络延迟,使用Docker Hub Mirror加速Docker官方镜像下载 http://c ...

  9. 老码农冒死揭开行业黑幕:如何编写无法维护的代码&lbrack;ZZ&rsqb;

    下面是一篇有意思的"代码大全",可谓 逆软件工程. 老码农冒死揭开行业黑幕:如何编写无法维护的代码 原文如下 让自己稳拿铁饭碗 ;-) – Roedy Green(翻译版略有删节) ...

  10. eclipse插件jd-eclipse的使用

    https://blog.csdn.net/u013215289/article/details/51275527