zoukankan      html  css  js  c++  java
  • Java文件读写详解。 附txt乱码问题, html乱码问题

    先看代码

     1 public class FileReader {
     2     public static String readFile(String fileName) {
     3         String fileContent = "";
     4         try {
     5             File f = new File(fileName);
     6             if (f.isFile() && f.exists()) {
     7                 InputStreamReader read = new InputStreamReader(
     8                         new FileInputStream(f), "gbk");
     9                 BufferedReader reader = new BufferedReader(read);
    10                 String line;
    11                 while ((line = reader.readLine()) != null) {
    12                     fileContent += line;
    13                 }
    14                 read.close();
    15             }
    16         } catch (Exception e) {
    17             e.printStackTrace();
    18         }
    19         return fileContent;
    20     }
    21 }

    这里有几个比较重要的对象

    File    定义文件路径

    InputStreamReader    File与BufferReader的桥梁

    BufferReader             内存数据与InputStreamReader的桥梁

    简单来说就是File先给出了文件路径

    之后通过InputStreamReader将文件读取到内存块中,但是此时离真正可用的内存数据还有一步,需要借用BufferReader的readline方法

    于是将InputStreamReader与BufferReader绑定,则可以新的BufferReader对象将数据写入到内存中

    同理于写文件

     1 public class FileWriter {
     2     public static void writeFile(String fileName, String fileContent) {
     3         try {
     4             File f = new File(fileName);
     5             if (!f.exists()) {
     6                 f.createNewFile();
     7             }
     8             OutputStreamWriter write = new OutputStreamWriter(
     9                     new FileOutputStream(f), "gbk");
    10             BufferedWriter writer = new BufferedWriter(write);
    11             writer.write(fileContent);
    12             writer.close();
    13         } catch (Exception e) {
    14             e.printStackTrace();
    15         }
    16 
    17     }
    18 }

    此外有时我们会遇到读取的文件是乱码的情况

    这是因为所选择的编码方式于文件的编码格式不符合,如此只要修改InputStreamReader中的编码参数就可以了

    当我们写一个html文件时,有时也会出现乱码的问题

    虽然我们写入时并非乱码,但用html打开时就是乱码,这个问题的原因是html通常用utf-8来打开,如果用gbk或其他格式保存,则以html格式打开时会显示乱码

    以上

  • 相关阅读:
    IO之同步、异步、阻塞、非阻塞 (2)
    IO之同步、异步、阻塞、非阻塞
    Syncthing源码解析
    Syncthing源码解析
    在Gogland里对GO程序进行单元测试!
    GO学习笔记
    GO学习笔记
    GO学习笔记
    GO学习笔记
    GO学习笔记
  • 原文地址:https://www.cnblogs.com/Raymond-Yang/p/4253768.html
Copyright © 2011-2022 走看看