Копирование введенного пользователем текста в выходной текстовый файл (java) - PullRequest
0 голосов
/ 02 февраля 2020

Это задание для моего java класса. Мне нужно создать пользовательский ввод и поместить его во входной файл (InputFile.txt), а затем отправить этот текст через выходной файл (OutPutFile.txt). Ниже приведен вопрос и пример текста:

Напишите программу, которая открывает текстовый файл (InputFile.txt) и считывает ввод. Файл содержит строки строки, которые выглядят так:

это строка первая.

это строка вторая.

это строка третья.

это строка четвертая.

Измените строку ввода в верхний регистр («ЭТО ОДНА ЛИНИЯ.»). Запишите строку верхнего регистра в файл OutputFile.txt. Обязательно прочитайте все строки из входного файла.

Я получил почти все, кроме того, что собирался поместить текст в вывод и показать его. Мой код ниже вместе с моим результатом, который я продолжаю получать. Я знаю, что я где-то напутал, я просто не знаю, где.

Любая помощь / рекомендации очень помогли бы. Спасибо !!

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

public class Main {
    public static void main(String[] args) throws IOException {
        FileInputStream fileByteStream = null;
        Scaner inFS = null;
        String InputFile;

        fileByteStream = new FileInputStream("InputFile.txt");
        inFS = new Scanner(fileByteStream);

        while (inFS.hasNextLine()) {
            System.out.println(inFS.nextLine());
        }
        fileByteStream.close();

        FileOutputStream fileStream = new FileOutputStream("OutputFile.txt");
        PrintWriter outFS = new PrintWriter(fileStream);

        outFS.print(inFS);
        outFS.close();
    }
}

Результат: java.util.Scanner[delimiters=\p{javaWhitespace}+][position=77][match valid=false][need input=false][source closed=true][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\QNaN\E][infinity string=\Q∞\E]

1 Ответ

1 голос
/ 02 февраля 2020

Хорошо, во-первых, в 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...