zoukankan      html  css  js  c++  java
  • java io 读取写文件

    java 读取txt文件,汉字乱码,原因是因为文件的编码格式和程序编码采用了不同的编码格式。通常,假如自己不修改的话,windows自身采用的编码格式是gbk(而gbk和gb2312基本上是一样的编码方式),程序中一般采用utf-8,所以读取文件的时候最好指定编码方式

      方式1:以字节流读写

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    
    import org.apache.commons.lang3.StringUtils;
    
    public class FileReadWriteDemo2 {
    
        public static void main(String[] args) throws IOException {
    
            BufferedReader read = new BufferedReader(new InputStreamReader(new FileInputStream("f:/test.txt"),"gbk"));
            Writer out = new OutputStreamWriter(new FileOutputStream("f:/testNew.txt"),"gbk");
            BufferedWriter writer =new BufferedWriter(out);
            String fileContent ="";
            String line = "";
            while ((line = read.readLine()) != null) {
                //删除空格
                if (StringUtils.isNotBlank(line)) {
                    //System.out.println(line);
                    fileContent +=line+"
    ";
                    writer.write(line);
                    writer.write("
    ");
                }
            }
            read.close();
            writer.close();
            System.out.println(fileContent);
        }
    }

     方式2:以字符流读写

    public class FileReadWriteDemo {
    
        public static void main(String[] args) throws IOException {
            BufferedReader read = new BufferedReader(new FileReader("f:\test.txt"));
    
            BufferedWriter writer = new BufferedWriter(new FileWriter("f:/testNew.txt"));
            
            String line = "";
            while ((line = read.readLine()) != null) {
            
                if (StringUtils.isNotBlank(line)) {
                    System.out.println(line);
                    writer.write(line);
                    writer.write("
     ");
                }
            }
            read.close();
            writer.close();
        }
    }
  • 相关阅读:
    Java线程池之ThreadPoolExecutor
    React Native开发环境的搭建
    Android Lint——内嵌于Android Studio的代码优化工具
    Android异步处理技术
    NavigationView的头部的事件监听
    进程间通信之AIDL
    跨进程通信之Messenger
    Android 进程增加存活率
    android MVP模式思考
    Vim学习
  • 原文地址:https://www.cnblogs.com/newlangwen/p/7772081.html
Copyright © 2011-2022 走看看