Java 讀寫txt文件


這里實現兩個方法

1.逐行讀取txt文件,並以"," 逗號位分隔符 ,把讀到的內容轉為map或者實體類

2.把內容 寫入txt文件

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TxtUtils {

    Logger logger = LoggerFactory.getLogger(TxtUtils.class);

    /**
     * 逐行讀取TXT並處理,轉為Map或者其它Object
     */
    @Test
    public void readTxtToObject() {
        Map<String, String> map = new HashMap<String, String>();
        try {
            String path = "C:\\Test\\test.txt";
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path)), "UTF-8"));
            String lineTxt = null;
            // 逐行讀取
            while ((lineTxt = br.readLine()) != null) {
                // 每行數據以逗號分隔
                String[] names = lineTxt.split(",");
                // 處理數據, 可以轉成entity, 在這兒轉換成map
                map.put(names[0], names[1]);
            }
            br.close();
        } catch (Exception e) {
            logger.error("Error Message :", e);
        }
        logger.info("map.size()=" + map.size());
    }

    /**
     * 逐行讀取TXT文件並打印到控制台
     */
    @Test
    public void readTxt() {
        try {
            String path = "C:\\Test\\test.txt";
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path)), "UTF-8"));
            String lineTxt = null;
            int count = 0;
            // 逐行讀取
            while ((lineTxt = br.readLine()) != null) {
                // 輸出內容到控制台
                logger.info(lineTxt);
                count++;
            }
            br.close();
            logger.info("count=" + count);
        } catch (Exception e) {
            logger.error("Error Message :", e);
        }
    }

    /**
     * 方法1寫入txt
     * 
     * @param filePath
     * @param message
     * @throws IOException
     */
    public void writetoTxt1(String folder, String filename, String message) throws IOException {

        File files = new File(folder);
        files.mkdirs();

        File file = new File(folder + File.separator + filename);
        file.createNewFile();
        BufferedWriter out = new BufferedWriter(new FileWriter(file));
        out.write(message);
        out.flush();

    }

    /**
     * 方法2寫入txt
     * 
     * @param foler
     * @param file
     * @param messageList
     * @throws FileNotFoundException
     */
    public void writeToTxt(String folder, String file, List<String> messageList) throws FileNotFoundException {

        File files = new File(folder);
        files.mkdirs();

        FileOutputStream fos = new FileOutputStream(folder + File.separator + file);

        // 逐行寫入
        PrintWriter pw = new PrintWriter(fos);
        for (String message : messageList) {
            pw.println(message);
        }
        pw.close();

    }

    /**
     * 測試方法2寫入txt
     */
    @Test
    public void writeToTxt() {

        String folder = "C:\\Test0";
        String filename = "000.txt";

        String message = "this is message \n";
        for (int i = 0; i < 3; i++) {
            message += "abc \n";
        }
        try {
            writetoTxt1(folder, filename, message);
        } catch (IOException e) {
            logger.error("Error Message :", e);
        }

    }

    /**
     * 測試方法2寫入txt
     */
    @Test
    public void testWriteToTxt() {
        String folder = "C:\\Test";
        String file = "test.txt";
        List<String> messageList = new ArrayList<>();
        messageList.add("ok,0");
        messageList.add("no,1");
        messageList.add("pass,2");
        messageList.add("okay,3");

        try {
            writeToTxt(folder, file, messageList);
        } catch (FileNotFoundException e) {
            logger.error("Error Message :", e);
        }

    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM