博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取文件的乱码问题
阅读量:5150 次
发布时间:2019-06-13

本文共 2668 字,大约阅读时间需要 8 分钟。

---恢复内容开始---

  根据老师布置的作业步骤,下一步进行文件处理。

  我在文件读取的时候采用了BufferedReader 类,打算进行逐行读取。此处是对直接从网页上扒下来的源代码(直接存储为*.txt)进行读取,出现乱码问题。

  下面展示下代码:

1 package process; 2  3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileReader; 6 import java.io.IOException; 7  8 public class readFileByLine { 9     10     public static void main(String[] args) {11         12         File file = new File("E:/eclipseWorkspace/tixiJG/TTest/003_utf8.txt");13         14         readFile(file);15         16         17         18     }19     20     public static void readFile(File fileName) {21         22         String str = "";23         BufferedReader buff = null;24         25         try {26             27             buff = new BufferedReader(new FileReader(fileName));28             int line = 1;29             while( (str = buff.readLine()) != null) {30                 31                 System.out.println("line "+line+": "+str);32                 33                 line++;34             }35             buff.close();36         }catch(IOException e) {37             38             e.printStackTrace();39         }40     }41 42 }

 

  修改一、我觉得可能是编码不是默认的utf8,于是将该文件的编码改为utf8,结果依旧乱码。

  修改二、经查询API(1.6)我发现InputStreamReader的读取可以指定编码,于是我重新弄了一个程序,经过各种曲折的修改终于正常运行,然而依旧乱码。

  修改三、BufferedReader 与 InoutStreamReader 结合起来用,即:

    InputStream in = new FileInputStream(fileName);

    InputStreamReader isr = new InputStreamReader(in, "utf-8");
    BufferedReader buff = new BufferedReader(isr);

  完整代码如下:

package process;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;/*** * 解决乱码 * @author Administrator * */public class readFileByLine2 {        public static void main(String[] args) {                File file = new File("E:/eclipseWorkspace/tixiJG/TTest/003_utf8.txt");                readFile(file);            }        public static void readFile(File fileName) {                        try {                        String str = "";            InputStream in = new FileInputStream(fileName);            InputStreamReader isr = null;                        isr = new InputStreamReader(in, "utf-8");            BufferedReader buff = new BufferedReader(isr);            int line = 1;            while( (str = buff.readLine()) != null) {                                System.out.println("line "+line+": "+str);                                line++;            }            buff.close();        }catch(IOException e) {                        e.printStackTrace();        }    }}

 

转载于:https://www.cnblogs.com/guoqiaoqiao/p/7667993.html

你可能感兴趣的文章
解决node-sass安装不了的问题
查看>>
javaScript几个操作数组增减元素的函数
查看>>
PostgreSQL在何处处理 sql查询之三十九
查看>>
安装python
查看>>
html的框架标签
查看>>
从VB6迁移到VB.NET及相关问题
查看>>
Joomla3.1.1在64位win7下安装
查看>>
[转] Latex设置字体大小,加粗,加下划线,变斜体
查看>>
React子组件怎么改变父组件的state
查看>>
Metropolis-Hastings算法
查看>>
jquery 对几种常见input操作
查看>>
SQL语句统计每天、每月、每年的 数据
查看>>
洛谷P1282 多米诺骨牌
查看>>
maven打包日志输出优化-去掉泛型与过时的警告
查看>>
用CSS美化你的HTML
查看>>
LeetCode#189 Rotate Array
查看>>
潮流设计:15个创意的 3D 字体版式作品欣赏
查看>>
modern.IE – Web 开发必备的 IE 浏览器测试工具
查看>>
非常酷的国外网站导航设计案例欣赏
查看>>
40个优秀的单页网站设计范例(下篇)
查看>>