Java-按行数分割文本

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;
		fileName = fileName.substring(0, fileName.length()-4);
		FileWriter w = null;
		while((word = source.nextWord()) != null){
			if(count == 0){
				w = new FileWriter(fileName+n+".csv");
				w.write(head);
			}
			//System.out.println(n + ":" + count);
			w.write(word);
			++count;
			if(count == 100000){
				++n;
				count = 0;
				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();
	}
}

时间: 2024-11-04 19:52:31

Java-按行数分割文本的相关文章

用代码统计java代码行数

public class Tongjidaima { private static int i;//代码总行数 private static int j;//文件个数 public static void main(String[] args) throws IOException { File file = new File("F:\\eclipsework\\Zhansen");//需要统计行数的文件夹路径 traverseFiles(file);//调用递归方法查看.java文件

给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数

public class ComputeSourceLine { public static void main(String[] args) throws FileNotFoundException { // TODO Auto-generated method stub // 定义相关变量 int totalLine = 0; int emptyLine = 0; int commentLine = 0; int codeLine = 0; // 大家重点了解 Scanner类(网络搜索)

使用java读取文件夹中文件的行数

使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个小时将代码写出(可见我的java功底还是挺烂的).虽然有很多有待改进的地方,依然有纪念意义. 本java类的核心是通过BufferedReader类的readLine()方法,间接的统计行数:通过递归遍历文件. 这个类只是写来完成任务的.结果不是很严谨,许多情况并没考虑到:比如判断想读取某一类文件怎

java打印等腰三角形的两种方法!(根据行数,根据底边长度)

首先来看根据用户输入的底边的长度判断: 1 package cn.edu.nwpu.java; 2 3 import java.util.Scanner; 4 5 public class IsoscelesTriangle { 6 7 public static void main(String[] args) { 8 // 打印输出等腰三角形 9 System.out.println("请输入等腰三角形的底边长度:"); 10 while (true) { 11 Scanner i

(转)Java按指定行数读取文件

package test import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.LineNumberReader; public class ReadSelectedLine{ // 读取文件指定行. static void readAppointedLineNumber(File sourceFile, int lineNumber) throws IOExcepti

Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)

要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释开头,接着判断是否是块注释结尾,再判断是否是单行注释或者空白行,若都不是则是有效代码,统计行数+1. 对于文件夹路径,采用递归的方法判断子条目是文件还是文件夹,是文件就调用静态统计方法.源代码: public class CalculateRow { public static void main(

统计java方法(函数)的代码行数

今天想对一个java项目超过100行的方法进行一些代码优化.需要统计一下项目中的java类有哪些方法的代码超过了100行.在网上没找到类似的统计工具,就自己写了段代码进行统计. 编码思路:因为一个java类,最外层的{}可以标识类,次外层的{}就是方法或内部类了.为了便于编码,我把内部类也当作方法处理了.只要把次外层的{和}配对就是一个完整的方法了.因此我用先进后出的栈存储一个数组.数组的第一个元素是某个方法起始行,第二个元素是该行的行号.这样既能通过行号相减得到方法的行数,又能记录方法的位置.

【Java】Eclipse新建的Java文件自动生成主函数、控制台输出行数不再受限制

一.新建的Java文件自动生成主函数 虽然只是一个很简单的事情,但应该还是有人不知道了,每次新建Java文件都要手动输入public static void main(String args[]){},非常麻烦,其实Eclipse可以自动生成这行,只是大多数的Java文件都是没有主函数的,所以这行默认关闭, 右击Java项目下的src可以选择New->Class也就可以新建类 然后在弹出的对话框上勾上自动产生主函数,点击确认,在生产的Java文件中就有主函数了 二.Eclipse控制台输出行数不

Java读本地英文txt文本,显示行数、字数、单词出现频率

参考网上的代码,自己再略微修改,纯作记录 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class readFile { public static void mai