zoukankan      html  css  js  c++  java
  • 读取文件的乱码问题

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

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

      我在文件读取的时候采用了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();
            }
        }
    
    }
    ————————————来自 大中国的智慧结晶
  • 相关阅读:
    metasploit(MSF)对windows的ms17-010漏洞利用
    kali 解决Metasploit拿到shell后显示中文乱码问题
    kali安装搜狗输入法
    Struts2 为Action 的属性注入值&& 处理请求后缀
    Action 名称搜索顺序&Action配置中的各项默认值
    Struts.xml配置中的包介绍
    AJAX 使用XMLHttpRequest对象发送和接受数据
    Unicode 汉字编码
    HTTP 协议 请求头详解
    java Dom 解析 XML 详细解答
  • 原文地址:https://www.cnblogs.com/guoqiaoqiao/p/7667993.html
Copyright © 2011-2022 走看看