java循环文件夹读取各种文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lzlnd/article/details/86648606

文件格式是这样的

处理方法为:

package com.caissa.chador_mr;

import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * Created by admin on 2019/1/25.
 */
public class ReadLogFile {

	public static void main(String [] args){
      traverseFolder2("C:\\Users\\admin\\Desktop\\新报表系统\\新日报数据");
	}

	/**
	 * 遍历文件夹
	 * @param path
	 */
	public static  void traverseFolder2(String path){
		File file = new File(path);
		if (file.exists()) {
			File[] files = file.listFiles();
			if (files.length == 0) {
				System.out.println("文件夹是空的!");
				return;
			} else {
				for (File file2 : files) {
					if (file2.isDirectory()) {
						System.out.println("文件夹:" + file2.getAbsolutePath());
						traverseFolder2(file2.getAbsolutePath());
					} else {
						String fileName=file2.getName();
						String fileType=fileName.substring(fileName.lastIndexOf(".")+1);
						System.out.println("文件名:" +fileName+"文件后缀:"+ fileName.substring(fileName.lastIndexOf(".")+1));
						if(fileType.equals("csv")){
							readCsvFile(file2.getAbsolutePath());
						}else if(fileType.equals("bz2")){
							readBZ2File(file2.getAbsolutePath());
						}else if(fileType.equals("txt")){
                            readTxtFile(file2.getAbsolutePath());
						}

					}
				}
			}
		} else {
			System.out.println("文件不存在!");
		}
	}

	/**
	 * 读取bz2文件的内容
	 * @param fileAdress
	 */
	public static void  readBZ2File(String fileAdress){
		DealLineDate dealLineDate =new DealLineDate();
		File file=new File(fileAdress);
		InputStream is=null;
		try {
			//用bz2读取文件
			is=new BZip2CompressorInputStream(new FileInputStream(file));
			BufferedReader reader = new BufferedReader(new InputStreamReader(is));
			String line = null;
			while ((line = reader.readLine()) != null) {
				//读取之后的处理
				System.out.println(line);
				dealLineDate.dealDate(line);
			}
			reader.close();
			is.close();
		}catch (Exception e){
			e.printStackTrace();
		}
	}
	/**
	 * 读取txt文件的内容
	 * @param fileAdress
	 */
	public static void readTxtFile(String fileAdress){
		DealLineDate dealLineDate =new DealLineDate();
		try {
			File filename = new File(fileAdress); // 要读取以上路径的input。txt文件
			InputStreamReader reader = new InputStreamReader(new FileInputStream(filename)); // 建立一个输入流对象reader
			BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
			String line = "";
			line = br.readLine();
			while (line != null) {
				line = br.readLine(); // 一次读入一行数据
				System.out.println(line);
				dealLineDate.dealDate(line);
			}
		}catch (Exception e){
			e.printStackTrace();
		}
	}
	/**
	 * 读取txt文件的内容
	 * @param fileAdress
	 */
	public static void readCsvFile(String fileAdress){
		DealLineDate dealLineDate =new DealLineDate();
		try{
			BufferedReader reader = new BufferedReader(new FileReader(fileAdress));
			reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
			String line = null;
			while((line=reader.readLine())!=null){
				System.out.println(line);
				dealLineDate.dealDate(line);
			}
		}catch (Exception e){
			e.printStackTrace();
		}
	}
}


猜你喜欢

转载自blog.csdn.net/lzlnd/article/details/86648606