`

java.io 打印文本所在行号

    博客分类:
  • J2SE
阅读更多
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.io.StringReader;

/**
 * 这个小程序的作用是熟悉JAVA的输入输出操作,将读入一个文件到缓冲区,然后输出到新创建的文件中。
	Line1: 
	Line2: public class Line {
	Line3: 	public static void main(String[] args) {
	....		...
	Line7: 	}
	Line8: }
 * @author SUN
 * 
 */
public class LineNumber {
	
	public static void main(String[] args) {
		try {
			// 要读取的文件
			File inFile = new File("input.txt");
			
			// 要输出的文件
			File outFile = new File("output.txt");
			outFile.createNewFile();	// 创建不存在的文件

			if (inFile.exists()) {
				String str;
				StringBuffer buffer = new StringBuffer();

				// BufferedReader 带缓冲的字符读取,FileReader 对文件以字符读取, inFile要读取的文件
				BufferedReader inBuffer = new BufferedReader(new FileReader(inFile));
				while ((str = inBuffer.readLine()) != null) {	// 从缓冲区每次读一行
					buffer.append(str).append("\n");			// \n 回车,每行之后换一个新行
				}
				inBuffer.close();	// 释放资源

				// LineNumberReader可用于创建行号
				LineNumberReader lines = new LineNumberReader(new StringReader(buffer.toString()));
				
				// PrintWriter 日志的打印应该使用的是此流
				PrintWriter linesOut = new PrintWriter(new BufferedWriter(new FileWriter(outFile)));

				while ((str = lines.readLine()) != null) {
					linesOut.println("Line" + lines.getLineNumber() + ": "+ str);
				}
				linesOut.close();
			} else {
				System.out.println("The File does not exist!");
			}
		} catch (IOException ioe) {
			System.out.println(ioe.getMessage());
		}
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics