java io读取文件指定行_Java 实现读取文件指定行的内容

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));

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值