zoukankan      html  css  js  c++  java
  • 41、使用字符流解决乱码问题

    字符流FileReader

    字符流FileReader主要用来读取字符的IO流,使用字符流读取文本文件可以解决乱码问题。

    package com.sutaoyu.IO;
    
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class IO_test_8 {
        public static void main(String[] args){
            FileReader fr = null;
            try {
                fr = new FileReader("word.txt");
                int temp;
                while((temp = fr.read()) != -1) {
                    System.out.println((char)temp);
                }
            }catch(FileNotFoundException e) {
                e.printStackTrace();
            }catch(IOException e) {
                e.printStackTrace();
            }
        }
    }

    使用缓冲流BufferedReader可以一次读取一行的文字:

    package com.monkey1024.chario;
    
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class FileReaderTest02 {
    
        public static void main(String[] args) {
            try (BufferedReader br = new BufferedReader(new FileReader("word.txt"));) {
                String s;
                //一次读取一行
                while ((s = br.readLine()) != null) {
                    System.out.print(s);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    字符流FileWriter

    使用FileWriter可以解决写出文本文件中文乱码的问题

    package com.sutaoyu.IO;
    
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class IO_test_10 {
        public static void main(String[] args) {
            FileWriter fw = null;
            try {
                fw = new FileWriter("netword.txt");
                fw.write("我洗喜欢学习java");
                fw.write(97);
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

    使用BufferedWriter缓冲流写出文字

    package com.sutaoyu.IO;
    
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class IO_test_11 {
        public static void main(String[] args) {
            BufferedWriter bw = null;
            try {
                bw = new BufferedWriter(new FileWriter("netword.txt"));
                bw.write("我喜欢打篮球");
                bw.newLine();//换行
                bw.write("我喜欢踢足球");
                bw.flush();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

    使用字符流拷贝文件

    使用字符流拷贝文本文件可以避免文件中的内容乱码,需要注意的是字符流不能拷贝非文本文件,比如照片。

    package com.sutaoyu.IO;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class IO_test_12 {
        public static void main(String[] args) {
            BufferedReader br = null;
            BufferedWriter bw = null;
            try {
                bw = new BufferedWriter(new FileWriter("copyword.txt"));
                br = new BufferedReader(new FileReader("word.txt"));
                String s;
                while((s= br.readLine()) != null) {
                    bw.write(s);
                    bw.newLine();
                }
                bw.flush();
            }catch(IOException e) {
                e.printStackTrace();
            }
        }
    
    }
  • 相关阅读:
    传真机换色带
    系统无法安装 OfficeControl.ocx 控件如何解决
    体系结构
    WebOffice 插件
    ArcMAP定义投影坐标
    如何在AutoCAD中将卫星底图变为有坐标参考信息的
    AutoCAD中导入图片
    CGCS2000坐标系与其他坐标系间的差异和转换方法
    FTP服务器(SOCKET)返回异常 500 Command not understood
    Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10143315.html
Copyright © 2011-2022 走看看