雪梨篮儿 2023-12-26 00:21 采纳率: 75.9%
浏览 2
已结题

FileReader读出来的汉字是乱码

txt文件 里有英文有汉字,英文显示正常,但是汉字显示异常,我可是抄的老湿的代码,不明所以,故问,3Q


```java
package reader;

import java.io.FileReader;
import java.io.IOException;

/**
 * @author 小池
 * @version 1.0
 */
public class FileReader_ {
    public static void main(String[] args) {
        /*
        String filePath = "d:\\123.txt";
        FileReader fileReader = null;
        int data = 0;
        try {
            fileReader = new FileReader(filePath);
            while ((data=fileReader.read()) != -1){
                System.out.print((char)data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        */
        String filePath = "d:\\123.txt";
        FileReader fileReader = null;
        int data = 0;
        char[]  buf = new char[8];
        try {
            fileReader = new FileReader(filePath);
            while ((data=fileReader.read(buf)) != -1){
                System.out.print(new String(buf,0,data));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {

            try {
                if(fileReader != null){

                        fileReader.close();

                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}


```

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-26 02:04
    关注

    【相关推荐】



    • 这篇博客: FileReader与txt在线预览中的 界面中插入txt文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      两种情况:界面中直接插入可以编辑的字符串(markdown或者txt文本),直接在前端进行读取;或者上传文件到服务器,然后读取服务器中的内容。其中的第二种情况是问题7解决。

      这里使用JS的方法

      <input type="file" accept="img/jpg, img/png, txt/plain" onChange={this.handleUpload}>
      </input>
      

      这里可以选择上传文件的文件类型,在HTML标签中进行设定,这样避免上传一些不合法的文件或者CSRF攻击。这个属性在FF和chrome中有效。文件类型的验证最好在上传后或者JS代码进行二次验证。

      描述
      audio/*接受所有的声音文件。
      video/*接受所有的视频文件。
      image/*接受所有的图像文件。
      MIME_type一个有效的 MIME 类型,不带参数。

      可以查看文章:

      https://blog.csdn.net/u013379933/article/details/77119796
      http://www.iana.org/assignments/media-types/
      function handleUpload(event) {
        const file = event.target.files[0];
        // 获取上传的文件数组的第一个文件
        if (file.size) {
          // 首先判断文件是否有内容
          let reader = new FileReader();
          reader.readAsText(file);
          // 按照text文件进行读取文件
          reader.onload = (resultFile) => {
            let pointsTxt = resultFile.target.result;
            console.log(pointsTxt);
            // 继续处理,显示在界面上或者其他方式
          };
        }
      }
      

      这里的关键就是FileReader,可以查看标准的解释

      https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月4日
  • 创建了问题 12月26日

悬赏问题

  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错