1. mport java.io.*;
    2. import java.util.Scanner;
    3. public class Arr {
    4. public static void main(String[] args) throws IOException {
    5. BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\DaluxC\\Desktop\\新建文件夹δ\\新建文本文档.txt"));
    6. String row;
    7. int startR = 0, startC = 0, endR = 0, endC = 0;
    8. int cut = 0;
    9. boolean flag = false;
    10. Scanner sc = new Scanner(System.in);
    11. System.out.println("请输入开始的行 starR:");
    12. startR = sc.nextInt();
    13. System.out.println("请输入开始的列 starC:");
    14. startC = sc.nextInt();
    15. System.out.println("请输入结束的行 endR:");
    16. endR = sc.nextInt();
    17. System.out.println("请输入结束的列 endC:");
    18. endC = sc.nextInt();
    19. if(startR > endR){
    20. System.out.println("您不能将开始的行设置得比结束的行还大");
    21. System.exit(-1);
    22. }
    23. //确定开始的点、并输出从开始的点到倒数第二行的所有文本
    24. while((row = br.readLine()) != null && cut < endR-1){
    25. cut++;
    26. if(cut == startR){
    27. if(startC>row.length()){
    28. System.out.println("第"+startR+"行没有第"+startC+"列");
    29. System.exit(-1);
    30. }
    31. row = row.subSequence(startC, row.length()).toString();
    32. flag = true;
    33. }else{
    34. row = row.subSequence(0, row.length()).toString();
    35. }
    36. if(flag)
    37. System.out.println(row);
    38. }
    39. //特殊情况:同行之内截取、所给的开始行不存在
    40. if(!flag){
    41. //同行之内截取
    42. if(startR == endR && (row = br.readLine()) != null){
    43. if(startC<endC) {
    44. System.out.println(row.subSequence(startC, endC));
    45. System.exit(0);
    46. }
    47. else{
    48. System.out.println("您不能将开始的点设置得比结束的点还靠后");
    49. System.exit(-1);
    50. }
    51. }else {
    52. //所给的开始行不存在
    53. System.out.println("没有第" + startR + "行");
    54. System.exit(-1);
    55. }
    56. }
    57. //读取并输出最后一行的文本
    58. if(row != null) {
    59. if(endC > row.length()){
    60. System.out.println("第"+endR+"行没有第"+endC+"列");
    61. System.out.println("本次输出到了第"+cut+"行");
    62. System.exit(-1);
    63. }
    64. System.out.println(row.subSequence(0, endC));
    65. }else {
    66. System.out.println("没有第" + endR + "行");
    67. System.out.println("本次输出到了第"+cut+"行");
    68. }
    69. }
    70. }