只需要jdk,不需要任何依赖库!
利用编译器控制台即可进行阅读!
并且看起来无疑是在调试代码,找bug!
效果图:
步骤1:将代码复制一下。
步骤2:配置开头的bookSrc参数,即书籍的路径
步骤3:运行代码
步骤4:将控制台翻回最上方,开始阅读
步骤5:保存标签:每一行最左边显示行数,直接在控制台输入该数字。
直接上代码:
import java.io.*;
import java.util.Scanner;
public class CDBook {
//书籍路径
final static String bookSrc = "D:\\dpcq.txt";
private static int readLabel() {
int labelLine = 0;
File file = new File(bookSrc + ".label");
if (file.exists()) {
try (FileReader label = new FileReader(file)) {
BufferedReader bufferedReader2 = new BufferedReader(label);
String line = bufferedReader2.readLine();
int num = Integer.parseInt(line);
System.out.println("上次读到第" + num + "行。 保存书签:在控制台输入阅读行最左侧的行数,按回车");
labelLine = num;
bufferedReader2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return labelLine;
}
private static void readBook(int readline) {
try (FileReader bookReader = new FileReader(bookSrc)) {
BufferedReader bufferedBookReader = new BufferedReader(bookReader);
String line = bufferedBookReader.readLine();
int number = 0;
while (line != null) {
if (number<=readline+1000 && number >= readline) {
System.out.println(number + "|" + line);
System.out.println("A problem occurred evaluating root project ''.\n" +
"> Failed to apply plugin [id 'cloud']");
}
line = bufferedBookReader.readLine();
number++;
}
System.out.println("已阅读1000行,请保存书签:在控制台输入阅读行最左侧的行数,按回车");
System.out.println("加载完毕,请将控制台上划到最上方开始阅读!!!");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
int readline;
//读书签
readline = readLabel();
//从指定书签处继续读书
readBook(readline);
Scanner scanner = new Scanner(System.in);
int labelLine = scanner.nextInt();
try {
File destFile = new File(bookSrc + ".label");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(destFile)); //存为UTF-8
osw.write(labelLine + "");
//刷新缓冲区的数据,强制写入目标文件
osw.flush();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("书签:保存到第" + labelLine + "行");
}
}