java - 用Java读取.txt文件?

标签 java filereader

我正在创建以下程序,它读取 text.file 并根据给定的参数打印出某些内容。如果用户输入“run Profile text.txt”,我希望它逐行打印出文件。如果用户输入“run Profile text.txt 5”,则应打印出前5行。我编写了以下程序:

import java.util.*; 
import java.io.*; 

public class Profile{

  public static String file;
  public static int len;
  public static Profile a;
  public static Profile b;

  //Method to read whole file
  static void wholeFile(String file){
    Scanner in = new Scanner(file);
    int lineNumber = 1;

    while(in.hasNextLine()){
      String line = in.nextLine();
      System.out.println("/* " + lineNumber + " */ " + line);
      lineNumber++;
    }
    in.close();
  }

  //Method to read file with line length
  static void notWholeFile(String file, int len){
    Scanner in = new Scanner(file);
    int lineNumber = 1;

    while(in.hasNextLine() && lineNumber <= len){
      String line = in.nextLine();
      System.out.println("/* " + lineNumber + " */ " + line);
      lineNumber++;
    }
    in.close();
  }

Profile(String file){
    this.file = file;
}
Profile(String file, int len){
    this.file = file;
    this.len = len;
    notWholeFile(file, len);
}
  public static void main(String[] args){
    Scanner in = new Scanner (System.in);
    if (args.length == 1){
      file = args[0] + "";
      a = new Profile(file);
      wholeFile(file);
    }     
    if (args.length == 2){
      file = args[0] + "";
      len = Integer.parseInt(args[1]);
      b = new Profile(file, len);
      notWholeFile(file, len);
    }   
  }
}

出于测试目的,我在目录中包含了一个名为“text.txt”的 .txt 文件,其中包含以下文本:

blah blah blah blah blah blah blah
blah blah blah blah blah blah blah

blah blah blah blah blah blah blah
blah blah blah blah blah blah blah

blah blah blah blah blah blah blah
blah blah blah blah blah blah blah

blah blah blah blah blah blah blah
blah blah blah blah blah blah blah

我是java初学者,但相信不应该有任何错误。但是,当我输入“run Profile text.txt 5”时,我得到以下输出:

> run Profile text.txt 5
/* 1 */ text.txt
/* 1 */ text.txt
> 

为什么我无法打印“blah blah”行?我读取 .txt 文件的方式是否有错误?如何访问该文本文件中的行?任何建议都会有帮助。

最佳答案

您正在扫描文件的名称,而不是文件的内容。即:

Scanner in = new Scanner(file);  // where file is of type string

创建一个从String本身读取的Scanner。尝试这样的事情:

Scanner in = new Scanner(new File(file));

这应该读取文件的内容。

关于java - 用Java读取.txt文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46700629/

相关文章:

javascript - 使用 JavaScript 读取多个文件并等待结果

javascript - 等待文件加载(onload JavaScript)

java - 一维数组遇到问题

Javaw 在启动外部应用程序时未终止

java - 如何关闭在 JAVA 方法中打开的扫描仪

javascript - 如何加载图像文件,每个文件到自己的 Canvas 元素中

javascript - 解压从 JavaScript FileReader API 发送到 Python 的 BinaryString

javascript - 将 promise 结果添加到数组中的项目

java - 运行 Spring Boot 集成测试时加载 ApplicationContext 失败

Java:使用 DecimalFormat 格式化 double 和整数,但保留没有小数点分隔符的整数