Использование класса сканера для чтения файла

Я пытаюсь прочитать текстовый файл с именем "test.txt" с классом сканера. В текстовом файле это просто предложение вроде: "Это текстовый файл". Это предложение - то, что я пытаюсь выписать. Но все, что я выписываю, это имя txt-файла, когда я использую команду: java UDPClient test.txt localhost.

Кто-нибудь может увидеть что-то не так в коде, чтобы я мог сделать это правильно? У меня есть два возможных кода.

Import java.net.*;
Import java.io.*;
Import java.util.*;

public class Test_scanner { 

     public String readFile(String fileName) throws IOException {

         File file = new File("test.txt");
         StringBuilder fileContents = new StringBuilder((int)file.length());
         Scanner s = new Scanner(file);
         String lineSeparator = System.getProperty("line.separator");

     try {
       while (s.hasNextLine()) {
           fileContents.append(s.nextLine() + lineSeparator);
       }
           return fileContents.toString(); 
       } finally {
           s.close();
            }
    }
}

У меня также есть этот код:

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

public class Test_scanner {

    public static void readFile(String fileName) {
        try {
           File file = new File(fileName);
           Scanner scanner = new Scanner(file);
            while (scanner.hasNextLine()) {
                    System.out.println(scanner.nextLine());
            }
                     scanner.close();
            } catch (FileNotFoundException e) {
                    e.printStackTrace();
            }
    }

1 ответ

"Import" в ваших операторах import не должен начинаться с заглавной буквы, поэтому ваш второй блок кода имеет правильное значение. Я не вижу метод main() ни в одном коде; вам нужен метод main() для запуска вашей программы. Предполагая, что вы используете командную строку для ввода имени файла, вы можете использовать что-то вроде этого:

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

public class TestScanner{

   public static void main(String[] args) {
      String sFileName = "";
      //checks if user enters a file name
      if(args.length == 0) {
         System.out.println("Please enter a file name in command line.");
         //terminates program
         System.exit(0);
      }
      else {
         sFileName = args[0];
      }

      File myFile = new File(sFileName);
      //scanner object which reads from file
      Scanner fileReader = null;

      try {
         //links scanner object to file.
         fileReader = new Scanner(myFile);
      }
      catch (FileNotFoundException fnf) {
         System.out.println("ERROR: File not found for " + sFileName);
         //terminates program
         System.exit(1);
      }

      System.out.println("Reading from file: " + sFileName + "\n");

      //fileReader reads each line from file.
      while(fileReader.hasNextLine()) {
         //stores each line from file trimmed
         System.out.println(fileReader.nextLine());
      }   
   }//end main() method
}//end TestScanner class   
Другие вопросы по тегам