JAVA里取TXT文件中 指定行的值

2025-03-03 05:41:39
推荐回答(1个)
回答1:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
* @auth eatonfang
*/
public class Test {

/**
* @param args
*/
public static void main(String[] args) {

String filePath ="D:/zaimu02Imp.txt";
int readLine = 3;
String readResult = null;
BufferedReader reader = null;

try {
reader = new BufferedReader(new FileReader(filePath));
int line = 1;
if (reader.ready()) {
while (line++ <= readLine && (readResult = reader.readLine()) != null) {
}
}
if (readLine <= 0 || line - 2 < readLine) {
System.out.println("指定行超出范围");
} else {
System.out.println(readResult);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
随手写的,请指教。

刚刚才看到你的要求,这个写法肯定是不符合你的要求的,不过我有一想法,文档的换行都可以用\n来分隔的,你可以一下子把整个流全读进来,然后通过String的split方法按照换行符分隔成一个数组,然后分隔完成的字符串数组0 1 2就是第1,2,3行,读取指定一行的内容直接取【i-1】数组内容即可,请指教。还有一个类就是RandomAccessFile 这个随机读取的类,这个类应该也能实现读取指定行,但是具体怎么用,没试过,楼主可以自己去试试。

不过我觉得不管怎么样,都会或多或少有点循环的,只不过是不同的实现方式我们写的代码不一样,在代码里面看不到循环而已,循环只是被封装到jdk的类里面去了而已。