Java 使用 try/catch 块从文本文件中读取

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20598589/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 03:02:14  来源:igfitidea点击:

read from text file using try/catch blocks

javaloopsnetbeanswhile-looptry-catch

提问by theGreggstar

so im trying to read from a file the number of words and adding them up to give and int answer? And help and or suggestions would be nice, and i can only use a try/catch while for loop and if/else/if.... Thanks!

所以我试图从文件中读取单词数并将它们加起来给出和 int 答案?帮助和/或建议会很好,我只能使用 try/catch while for 循环和 if/else/if .... 谢谢!

Here what i got so far:

这是我到目前为止所得到的:

package filereadingexercise2;

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

/**
 *
 * @author theGreggstar
 */
public class FileReadingExercise2 
{
  /**
   * @param args the command line arguments
   */
  public static void main(String[] args) 
  {
    Scanner keys = new Scanner(System.in); 
    String nameOfFile;

    System.out.print("Please Enter The Name Of A File Or Directory, or Type Quit To Exit: ");
    nameOfFile = keys.nextLine();

    Scanner input = null;
    try
    {
      input = new Scanner(new File(nameOfFile));
    }
    catch(FileNotFoundException s)
    {
      System.out.println("File does Not Exist Please Try Again: ");
    }

    while(input.hasNext())
    {
      String contents = input.next();
      int length;

      System.out.print(contents);       
    }
  }
}

回答by Elliott Frisch

If I understand you correctly, you want something like this -

如果我理解正确的话,你想要这样的东西——

public static void main(String[] args) {
  Scanner keys = new Scanner(System.in);
  for (;;) { // Loop forever.
    System.out.print("Please Enter The Name Of A File Or "
        + "Directory, or Type Quit To Exit: ");
    String nameOfFile = keys.nextLine().trim(); // get the User input.
    if (nameOfFile.equalsIgnoreCase("quit")) {  // check for exit condition.
      break;
    }
    File f = new File(nameOfFile);              // Construct a File.
    if (f.exists()) {                           // Does it exist?
      if (f.isFile() && f.canRead()) {          // is it a File and can I read it?
        Scanner input = null;
        try {
          input = new Scanner(f);               // The Scanner!
          while (input.hasNextLine()) {
            String contents = input.nextLine();
            System.out.println(contents);       // Print the lines.
          }
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        } finally {
          if (input != null) {
            input.close();                      // Close the file scanner.
          }
        }
      } else if (f.isDirectory()) {             // No, it's a directory!
        try {
          System.out.println("File "
              + f.getCanonicalPath()
              + " is a directory");
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }
}