在学Java,以字符流read一个txt文件,文件里写的是中文,控制台显示的乱码,大牛看下,谢谢

问题描述

在学Java,以字符流read一个txt文件,文件里写的是中文,控制台显示的乱码,大牛看下,谢谢

试了下,txt文件是英文的话不乱码,但是是中文的话就会出现乱码。

 public class test {
    public static void main(String[] args){
        readFile();
        //System.out.println("");
    }
    public static void readFile(){
        try {
            File file=new File("d:\lamp\1.txt");
            Reader in=new FileReader(file);
            char[] ch=new char[20];
            int len=-1;
            StringBuffer sb=new StringBuffer();
            while((len=in.read(ch))!=-1){
                sb.append(new String(ch,0,len));
            }
            in.close();
            System.out.println(sb);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

非常感谢!!!!!

解决方案

这种一般都是文件和开发环境的编码方式不一致导致,看你文件存储的编码格式是否和你开发环境的编码一致。

解决方案二:

你在读的时候设置字符串读取为UTF-8就可以了

解决方案三:

如果回答对您有帮助,请采纳

解决方案四:

这个是流的问题,流应该用字节流;字符流会默认你本地的编码;也可以制定流的编码为UTP-8

解决方案五:

重新对你的得到的结果字符串进行编码试试

解决方案六:

如果你用的eclipse,键点击你的类,有个properties,点开,有个人text file encoding 默认default,选择other ,下拉列表,选择utf-8

时间: 2024-09-18 21:30:44

在学Java,以字符流read一个txt文件,文件里写的是中文,控制台显示的乱码,大牛看下,谢谢的相关文章

字节流-JAVA缓冲字符流在实例化传入的必须是字符流吗?

问题描述 JAVA缓冲字符流在实例化传入的必须是字符流吗? 缓冲字符流在实例化传入的必须是字符流吗?可以传入 InputStream或OutputStream吗? 今天看代码遇到了这样的写法,不知道这种写法对不对,求告知原因! OutputStream os=new FileOutputStream("pw.txt",true); PrintWriter pw = new PrintWriter(os,true); 解决方案 首先你得捕获异常,应该这样 OutputStream os

Java IO: 字符流的Piped和CharArray

本章节将简要介绍管道与字符数组相关的reader和writer,主要涉及PipedReader.PipedWriter.CharArrayReader.CharArrayWriter. PipedReader 原文链接 PipedReader能够从管道中读取字符流.与PipedInputStream类似,不同的是PipedReader读取的是字符而非字节.换句话说,PipedReader用于读取管道中的文本.代码如下: Reader reader = new PipedReader(pipedW

Java IO: 字符流的Buffered和Filter

本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader.BufferedWriter.FilterReader.FilterWriter. BufferedReader 原文链接 BufferedReader能为字符输入流提供缓冲区,可以提高许多IO处理的速度.你可以一次读取一大块的数据,而不需要每次从网络或者磁盘中一次读取一个字节.特别是在访问大量磁盘数据时,缓冲通常会让IO快上许多. BufferedReader和BufferedInputStrea

JAVA ME 如何创建一个TXT的文件?

问题描述 我在做一个手机程序,想把输入的数据保存到一个TXT文件中,但是先要创建一个TXT文件,请问怎么做?我在网上找到一些代码,但是创建不了,望大家指教一下,先谢了!!Stringelem=null;Enumerationex=FileSystemRegistry.listRoots();while(ex.hasMoreElements()){elem=ex.nextElement().toString();}Stringroot=elem;try{FileConnectionfc=(File

Java使用字符流拷贝文件出现乱码

Java代码 //      BufferedReader in = null; //      BufferedWriter out = null; Reader in = null; Writer out = null; try { //          in = new BufferedReader(new FileReader(src)); //          in = new BufferedReader(new InputStreamReader(new FileInputSt

新手JAVA链接SQL server 2000的问题 麻烦看下 谢谢了

问题描述 今天做了一个数据库想用JAVA连一下方便以后做一个学生管理系统最后发现好像是驱动加载不上Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");这句有问题具体的错误信息是:java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriveratjava.net.URLClassLoader$1.run(URLClassLoader.java:200)atjava.security.Acc

java笔记八:IO流之字符流与字符缓冲流

java中字符流主要都是继承于Reader和Writer两个抽象类.用于对字符文本的读写操作.   一.转换类流 1 package com.iotest; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStreamRe

java 字节流和字符流的区别

字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示. <iframe id="iframe_0.4142593172691813" style="margin: 0px; padding: 0px; border-width: initial; border-style: none; width:

Java字符流与字节流区别与用法分析_java

本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流 Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new 字节流是最基本的,所有的Inpu