Хорошо, во-первых, в Java нет библиотеки с именем "java .util.io". То, что вы, вероятно, ищете, это "java .io" .
Еще одна вещь, касающаяся вашего кода, заключается в том, что вы ошиблись в названии объекта сканера, но не уверены, что это было случайно, когда вы опубликовал ваш вопрос, но правильный синтаксис:
Scanner inFS = null;
Относительно того, почему вы получаете:
java .util.Scanner [delimiters = \ p {javaWhitespace} +] [position = 77] [match valid = false] [нужно ввести = false] [источник закрыт = true] [пропущено = false] [разделитель группы = \,] [десятичный разделитель =.] [положительный префикс =] [отрицательный префикс = \ Q- \ E] [положительный суффикс =] [отрицательный суффикс =] [Строка NaN = \ QNaN \ E] [строка бесконечности = \ Q∞ \ E]
Это потому, что вы передают объект Scanner в PrintWriter. Вы на самом деле не печатаете строки, которые считывает сканер, вы печатаете содержимое строки сканера, возвращенного из метода toString ().
В любом случае, чтобы поместить текст в вывод, вы ' Нам понадобится объект File, который указывает на выходной файл, и PrintWriter, который указывает на объект File выходного файла. Общая идея, чтобы заставить это работать, состоит в том, чтобы ваш объект PrintWriter записывал в OutputFile.txt, в то время как программа считывает строки из InputFile.txt через Scanner. Поэтому ваш код должен выглядеть примерно так:
import java.util.Scanner;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException
{
File inputFile = new File("InputFile.txt");
File outputFile = new File("OutputFile.txt");
Scanner inFS = new Scanner(inputFile);
PrintWriter outFS = new PrintWriter(outputFile);
String line;
while (inFS.hasNextLine())
{
// Read in the line and convert it to upper case
line = inFS.nextLine().toUpperCase();
// Print the result to the console
System.out.println(line);
// Write the read in line to the output file with a new line character
outFS.print(line + "\n");
}
// Close any resources used
outFS.close();
inFS.close();
}
}