首页 > 编程语言 >Java 读取UTF-8文件中文乱码

Java 读取UTF-8文件中文乱码

时间:2023-04-28 18:09:05浏览次数:33  
标签:Java read isr 乱码 str new UTF null InputStreamReader


Java 读取UTF-8文件中文乱码

 

InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");

BufferedReader read = new BufferedReader(isr);

 

 

例如:

private static String readUTF8File(String filePath) throws IOException {
	InputStreamReader isr = null;
	BufferedReader read = null;
	StringBuffer str = null;
	try {
	    isr = new InputStreamReader(
		    new FileInputStream(new File(filePath)), "UTF-8");
	    read = new BufferedReader(isr);
	    str = new StringBuffer();
	    char[] buff = new char[1024];
	    int byteRead = 0;
	    while ((byteRead = read.read(buff)) != -1) {
		str.append(new String(buff, 0, byteRead));
	    }
	    return str.toString();
	} finally {
	    isr.close();
	    read.close();
	    str = null;
	    isr = null;
	    read = null;
	}
    }

 

 

 

应该没问题,试试吧!

标签:Java,read,isr,乱码,str,new,UTF,null,InputStreamReader
From: https://blog.51cto.com/u_9716826/6235234

相关文章

  • 超简单!Java 项目自动生成接口文档教程
    你还在用word、markdown埋头苦干写接口文档?写文档这件事恐怕是每个开发都万分抗拒的事情了。本篇文章详细教你如何利用插件工具,在IDEA中自动生成API文档。先来看看从IDEA中生成文档的效果如下图。下图是使用Apifox插件(Apifoxhelper)从IDEA生成的文档(右)效果。第一步......
  • Java 项目中一种简单的动态修改配置即时生效的方式 WatchService
    这种方式仅适合于比较小的项目,例如只有一两台服务器,而且配置文件是可以直接修改的。例如Springmvc以war包的形式部署,可以直接修改resources中的配置文件。如果是Springboot项目,还想用这种方式的话,就要引用一个外部可以编辑的文件,比如一个固定的目录,因为springboot大多......
  • Java继承
    Java继承继承的概念基础主要解决的问题是:共性抽取特点:子类可以拥有父类的"内容"子类还可以拥有自己的专有内容继承的格式在继承关系中,"子类就是一个父类,子类可以被当做父类看待."父类的格式定义:(一个普通的类的定义)子类的格式定义:publicclass子类名称exten......
  • Java多线程之---用 CountDownLatch 说明 AQS 的实现原理
    本文基于jdk1.8。CountDownLatch的使用前面的文章中说到了volatile以及用volatile来实现自旋锁,例如java.util.concurrent.atomic包下的工具类。但是volatile的使用场景毕竟有限,很多的情况下并不是适用,这个时候就需要synchronized或者各种锁实现了。今天就来说一下几......
  • BTrace : Java 线上问题排查神器
    BTrace是什么BTrace是检查和解决线上的问题的杀器,BTrace可以通过编写脚本的方式,获取程序执行过程中的一切信息,并且,注意了,不用重启服务,是的,不用重启服务。写好脚本,直接用命令执行即可,不用动原程序的代码。原理总体来说,BTrace是基于动态字节码修改技术(Hotswap)来实现运行时java......
  • Java 中的几种线程池,你之前用对了吗
    好久不发文章了,难道是因为忙,其实是因为懒。这是一篇关于线程池使用和基本原理的科普水文,如果你经常用到线程池,不知道你的用法标准不标准,是否有隐藏的OOM风险。不经常用线程池的同学,还有对几种线程的使用不甚了解的同学可以读一下此文。为什么要使用线程池虽然大家应该都已经很清......
  • Java1.8 新特性之Stream流
    转:Java1.8新特性之Stream流JDK1.8新特性 ......
  • Java 接口中的方法1.8,为了区别函数式接口
    Java接口中的方法函数式接口式指的式接口冲抽象方法只有一个  函数式接口 java中Comparator接口明明不止一个抽象方法,为什么也算函数式接口?  ......
  • Java算数运算符(++和--)
    1.++和--单独使用就是自增和自减i++-->i=i+1++i-->i=i+1i---->i=i-1--i-->i=i-12.++和--作为表达式使用j=++i-->先自增后赋值-->i=i+1;j=ij=i++-->先赋值后自增-->j=i;i=i+1j=--i-->先自减后赋值-->i=i-1;j=ij=i---->先......
  • 十个最好的Java性能故障排除工具
    推荐十个最好的Java性能故障排除工具:1.jconsole是随着JDK1.5而推出的。这是一个Java监测和管理控制台-JMX兼容的图形工具来监测Java虚拟机。它能够同时监测本地和远程的JVMs。详情可查看:jconsole工具介绍2.VisualVM集成了几个现有的JDK软件工具,轻量级内存和CPU信息概要能力。......