版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
}
}
}