【问题标题】:how to read file and return string and its value如何读取文件并返回字符串及其值
【发布时间】:2014-04-02 17:22:49
【问题描述】:

我有包含单词及其值的文件。我想创建返回单词及其值的参数,但我不确定如何执行此操作并且我的代码不起作用。

这是我的代码;

public static void main(String[] args)throws IOException {

    Scanner scan = new Scanner("/..../file.txt");
    String word = scan.next();

    while(scan.hasNextLine()){
        scan.nextLine();
        System.out.println(word);

    }

    scan.close(); 



}

这是文件中的内容,有很多数据;

{hi=2, bye=5, school=3, went=2, going=1, yesss=1, etc..}

请帮忙看看怎么做?

【问题讨论】:

  • Java?您应该为您的问题标记正确的语言。另外,我建议你删除连续的空白行,以使代码更易于阅读。
  • 你的代码不工作怎么办?您能否向我们展示输出结果或任何例外情况?
  • @crashmstr 是的,对不起它的 java。它基本上返回我的文件路径,即 /..../file.txt 我不明白为什么
  • 您的文件中有什么?值是逗号 sep 吗?还是他们出现在新行?

标签: java string file return


【解决方案1】:

扫描器类扫描构造函数中提供的值。 如果该值是一个字符串,它只会扫描该字符串。

如果你想让它扫描一个文件,你应该使用一个文件对象作为参数,例如:

Scanner scan = new Scanner(new File("/..../file.txt"));

【讨论】:

    【解决方案2】:

    你在Scanner构造函数中传递你的文件路径的方式是错误的,你可以这样传递你的文件路径

    Scanner scan = new Scanner(new File("/..../file.txt"));

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      尝试跟随

      public static void main(String[] args) {
          BufferedReader br = null;
          try {
              String sCurrentLine;
              br = new BufferedReader(new FileReader("D:/abc.txt"));
      
              while ((sCurrentLine = br.readLine()) != null) {
                  String trimmedStr = sCurrentLine.replace(" ", "");
                  String mainStr = trimmedStr.substring(1,trimmedStr.length()-1);
                  String[] arr = mainStr.split(",");
                  Map<String, String> mainMap = new HashMap<String, String>();
                  for(String pair : arr){
                      String[] kvArr = pair.split("=");
                      mainMap.put(kvArr[0], kvArr[1]);
                  }
                  System.out.println(mainMap.get("hi"));
              }
      
          } catch (IOException e) {
              e.printStackTrace();
          } finally {
              try {
                  if (br != null)br.close();
              } catch (IOException ex) {
                  ex.printStackTrace();
              }
          }
      }
      

      您的文件应包含以下内容

      {hi=2, bye=5, school=3, going=2, going=1, yesss=1}

      操作:

      2

      【讨论】:

      • 这看起来不错,但我的文件包含数百个单词及其值,如果我想获得所有这些单词,我该如何以比重复打印过程更简单的方式做到这一点
      • 像我在您的问题中所做的那样,以正确的格式粘贴您的一些文件内容
      • 编辑了我的问题,这就是它在我的文件中的显示方式
      • 您评论代码的任何可能性。所以我可以理解它在做什么,谢谢
      • 你可以打印不同的东西,比如“trimmedStr”、“mainStr”来理解,这将帮助你理解比我解释的更多的东西
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      相关资源
      最近更新 更多