package com.jftt.tiger.io;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.List;
public class ReadSelectedLine {
private static int totalLineNumber = 0;
static String readLineVarFile(String fileName,
int lineNumber)
throws
IOException {
BufferedReader reader = new
BufferedReader(new InputStreamReader(
new
FileInputStream(fileName)));
String line =
reader.readLine();
if (lineNumber <
0 || lineNumber > totalLineNumber) {
//System.out.println("不在文件的行数范围之内。");
//return
"lineNumber
">不在文件的行数范围之内。";
return
"ok";
}
int num = 0;
while (line != null) {
if
(lineNumber == ++num) {
//
System.out.println("line " +
lineNumber + ": " +
line);
return
line;
}
line =
reader.readLine();
}
reader.close();
return null;
}
// 文件内容的总行数。
static int getTotalLines(String fileName) throws
IOException {
BufferedReader in = new
BufferedReader(new InputStreamReader(
new
FileInputStream(fileName)));
LineNumberReader reader = new
LineNumberReader(in);
String s =
reader.readLine();
int lines = 0;
while (s != null) {
lines++;
s =
reader.readLine();
}
reader.close();
in.close();
return lines;
}
public static void main(String[] args) throws
IOException {
// 读取文件
String fileName =
"D:\\Java\\Hello.java";
// 获取文件的内容的总行数
totalLineNumber =
getTotalLines(fileName);
System.out.println("There are "
+ totalLineNumber + " lines in the text!");
// 指定读取的行号
int lineNumber = 1;
// 读取指定行的内容
System.out.println(readLineVarFile(fileName,
lineNumber));
List
listLine = new
ArrayList();
int start = 1;
int end = 50;
for (int i = start; i
<= end; i++) {
String line =
readLineVarFile(fileName, i);
if("ok".equals(line))
{
System.out.println("lineNumber
+ i + "-" + end + ">不在文件的行数范围之内。");
break;
}
listLine.add(line);
System.out.println("Tiger
--> " + listLine.get(i-1));
}
}
}