java读取txt文件

描述:

1.java读取指定txt文件并解析

  文件格式:

 

   代码:

package com.thinkgem.wlw.modules.midea;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author: zhouhe
 * @Date: 2019/6/19 8:48
 */
public class Test {
    public static void main(String[] args)  {
        // 文件夹路径
        String path = "D:\\input.txt";
        try {
            List<String> scanListPath = readFile02(path);
//            System.out.println(scanListPath);
            for (int i = 0; i < scanListPath.size(); i++) {
                String mytext = scanListPath.get(i);

                //替换所有制表符
                mytext = mytext.replaceAll("\t",",");
                System.out.println(mytext);
                //每一行都转化为新的数组,根据下标去判断参数值对应的参数是什么
                String [] strArr= mytext.split(","); //注意分隔符是需要转译
                for (int m = 0; m < strArr.length; m++) {
//                    System.out.println(strArr[m]);
                    switch(m){
                        case 0:
                            System.out.println("时间:"+strArr[m]);
                            break;
                        case 1:
                            System.out.println("甲烷:"+strArr[m]);
                            break;
                        case 2:
                            System.out.println("总烃:"+strArr[m]);
                            break;
                        case 3:
                            System.out.println("非甲烷总烃:"+strArr[m]);
                            break;
                        case 4:
                            System.out.println("氨气:"+strArr[m]);
                            break;
                        case 5:
                            System.out.println("硫化氢:"+strArr[m]);
                            break;
                        case 6:
                            System.out.println("氧气:"+strArr[m]);
                            break;
                        default:
                            break;
                    }
                }
            }
        } catch (IOException e) {
            System.out.println("有异常,无法读取!!!");
        }
    }

    /**
     * 读取一个文本 一行一行读取
     *
     * @param path
     * @return
     * @throws IOException
     */
    public static List<String> readFile02(String path) throws IOException {
        // 使用一个字符串集合来存储文本中的路径 ,也可用String []数组
        List<String> list = new ArrayList<String>();
        FileInputStream fis = new FileInputStream(path);
        // 防止路径乱码   如果utf-8 乱码  改GBK     eclipse里创建的txt  用UTF-8,在电脑上自己创建的txt  用GBK
        InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
        BufferedReader br = new BufferedReader(isr);
        String line = "";
        while ((line = br.readLine()) != null) {
            // 如果 t x t文件里的路径 不包含---字符串       这里是对里面的内容进行一个筛选
            if (line.lastIndexOf("---") < 0) {
                list.add(line);
            }
        }
        br.close();
        isr.close();
        fis.close();
        return list;
    }
}

  结果:

 

 

 

 2.java读取指定文件夹下的所有txt文件并输出内容(我这里一个文件夹下面有 2 个txt文件):

 

   代码:

package com.thinkgem.wlw.modules.midea;

import java.io.*;

/**
 * @Author zhouhe
 * @Date 2019/10/10 13:10
 */
public class Test2 {


    /**新建一个类把下面代码放进去,注意要设置basePath(你要读取的文件夹),读取和写入的方法也都写好了.你可以根据自己的需求掉用就行了**/
    static String basePath="D:\\测试";
    /**
   * 查找文件夹下所有符合csv的文件
   *
   * @param dir 要查找的文件夹对象
   * */
    public static void findFile(File dir) throws IOException {
        File[] dirFiles = dir.listFiles();
        for(File temp : dirFiles){
            if(!temp.isFile()){
                findFile(temp);
            }
        //查找指定的文件
        if(temp.isFile() && temp.getAbsolutePath().endsWith(".txt") ){
                //获取文件路径,包含文件名
                String filePath = temp.getAbsolutePath();
                //获取文件名
                String fileName = temp.getName();
                System.out.println(temp.isFile() + " " + temp.getAbsolutePath());
        readFileContent(temp);
        }
        }
    }

    /**
   * @param file 要读取的文件对象
   * @return 返回文件的内容
   * */
    public static String readFileContent(File file) throws IOException{
        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        StringBuffer sb = new StringBuffer();
        while(br.ready()){
//            sb.append(br.readLine());
            System.out.println(br.readLine());
        }
        System.out.println(sb.toString());
        return sb.toString();
    }

    /**
   * @param file 要写入的文件对象
   * @param content 要写入的文件内容
   * */
    public static void writeFileContent(File file,String content) throws IOException{
        FileWriter fw = new FileWriter(file);
        fw.write(content);
        fw.flush();
        fw.close();
    }

    public static void main(String[] args) {
        try {
            findFile(new File(basePath));
        } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    }
}

  结果:

 

posted @ 2019-10-15 15:49  农名工进城  阅读(3969)  评论(1编辑  收藏  举报