首页 > 代码库 > Java文件读写详解。 附txt乱码问题, html乱码问题

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格式打开时会显示乱码

 

以上

Java文件读写详解。 附txt乱码问题, html乱码问题