IO读文件写文件

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Test {
    
    public static void main(String[] args) {
        readFile();
    }
    
    /**
     * 字符串转换
     * @param from
     * @return
     */
    private static String translateStr(String from) {
        return "truncate table `thc_rcm`."+from+"`;";
    }
    
     /**
     * 读入TXT文件
     */
    public static List<String> readFile() {
        List<String> list = new ArrayList<>();
        int count = 0;
        Set<String> set = new HashSet<>();
        String pathname = "/Users/guchunchao/workspace-sst/Test/src/d.txt"; // 绝对路径或相对路径都可以,写入文件时演示相对路径,读取以上路径的input.txt文件
        //防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw;
        //不关闭文件会导致资源的泄露,读写文件都同理
        //Java7的try-with-resources可以优雅关闭文件,异常时自动关闭文件;详细解读https://stackoverflow.com/a/12665271
        try (FileReader reader = new FileReader(pathname);
             BufferedReader br = new BufferedReader(reader) // 建立一个对象,它把文件内容转成计算机能读懂的语言
        ) {
            String line;
            //网友推荐更加简洁的写法
            while ((line = br.readLine()) != null && !line.trim().isEmpty()) {
                
                // 一次读入一行数据
//                System.out.println(line);
//                String[] codeValue = line.split(",");
//                String sql = "insert into `thc_passport`.`city` values('" + codeValue[0] + "','"+ codeValue[1] + "');";
                System.out.println(++count + " " +translateStr(line));
                
//                set.add(sql);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            
        }
        list.addAll(set);
        return list;
    }
    
    /**
     * 写入TXT文件
     */
    public static void writeFile() {
        BufferedWriter out = null;
        try {
            File writeName = new File("/Users/guchunchao/workspace-sst/Test/src/e.txt"); // 相对路径,如果没有则要建立一个新的output.txt文件
            writeName.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖
            FileWriter writer = new FileWriter(writeName);
            out = new BufferedWriter(writer);
          
                List<String> list = readFile();
                for (int i = 0; i < list.size(); i++) {
                    out.write(list.get(i) + "\r\n"); // \r\n即为换行
                }
                out.flush(); // 把缓存区内容压入文件
        } catch (IOException e) {
            e.printStackTrace();
            try {
                out.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        } finally {
            try {
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


}

猜你喜欢

转载自www.cnblogs.com/guchunchao/p/11542193.html