Использование класса сканера для чтения файла
Я пытаюсь прочитать текстовый файл с именем "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