码迷,mamicode.com
首页 > 编程语言 > 详细

Java-按行+限定条件分割文本

时间:2015-04-20 22:46:10      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

package First;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class DealFile {
	public static void main(String[] args) throws Exception{
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		//键入文本名称
		String fileName = in.readLine();
		FileManager source = new FileManager(fileName);
		String head = source.nextWord();
		String word = null;
		int count = 0;
		//int n = 0;
		String n = "-checkIn";
		fileName = fileName.substring(0, fileName.length()-4);
		FileWriter w = null;
		//以逗号和换行符为分割
		String regex = ""+','+"|"+'\n';
		while((word = source.nextWord()) != null){
			String[] strs = word.split(regex);
			//不符合条件
			if(strs.length < 3 || !strs[2].equals("check-in"))
				continue;
			if(count == 0){
				w = new FileWriter(fileName+n+".csv");
				w.write(head);
			}
			//System.out.println(n + ":" + count);
			w.write(word);
			++count;
		}
		w.close();
	}
}

class FileManager{
	int pos = 0;
	File f;
	FileReader reader;
	boolean flag = false;
	
	public FileManager(String filename)throws Exception{
		f = new File(filename);
		reader = new FileReader(f);
	}
	
	public String nextWord() throws IOException{
		if(flag)
			return null;
		char[] buf = new char[1];
		StringBuffer sb = new StringBuffer();
		int len;
		do{
			len = reader.read(buf);
			sb.append(buf[0]);
		}while('\n' != buf[0] && len != -1);
		if(len == -1)
			flag = true;
		return sb.toString();
	}
}

Java-按行+限定条件分割文本

标签:

原文地址:http://blog.csdn.net/lane_l/article/details/45155779

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!