Im пытается прочитать текстовый файл под названием test.txt со сканером класса. В txt-файле это просто предложение вроде: «Это 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();
}
}
Ваш второй блок кода отлично подходит для меня, его определенно печатает содержимое файла, а не имя файла. Однако я бы переместил 'scanner.close()' в блок finally. – Quetzalcoatl