#java #arrays #java.util.scanner #java-io #txt
#java #массивы #java.util.scanner #java-io #текст
Вопрос:
Это подсказка, которую мне дали «Написать программу и использовать прикрепленный файл (babynames.txt ) в качестве входного файла и создайте две выходные плитки. В одном файле перечислены все имена мальчиков, а в другом файле перечислены все имена девочек «
Вот что у меня есть до сих пор
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class BabyNames
{
public static void main(String[] args) throws FileNotFoundException
{
// Prompt for the input and output file names
Scanner console = new Scanner(System.in);
System.out.println("Input file: ");
String inputFileName = console.next();
System.out.println("Output file 1: ");
String outputBoysNames = console.next();
System.out.println("Output file 2: ");
String outputGirlsNames = console.next();
// Construct the Scanner and PrintWriter objects for reading and writing
File inputFile = new File(inputFileName); // creates variable that reads from txt
Scanner in = new Scanner(inputFile);
PrintWriter out = new PrintWriter(outputBoysNames); // writes to output file (variable name)
PrintWriter out2 = new PrintWriter(outputGirlsNames);
// Read the input and write the output
while (in.hasNextLine()) {
String A = in.next();
String B = in.next();
String C = in.next();
String D = in.next();
String E = in.next();
String F = in.next();
String G = in.next();
out.printf(B);
out2.print(E);
}
in.close(); // Prevents this file is being used error
out.close();
out2.close();
}
}
Я бы предположил, что мне нужно будет ввести данные из текстового файла в массив. Каждый токен разделяется пробелом. Я не знаю, как подойти к этому. Кроме того, после настройки массива мне нужно будет изменить out.printf()
и out2.printf()
на цикл if, чтобы поместить нужные токены в соответствующий текстовый файл.
Пример строки из входного текстового файла
1 Michael 462085 2.2506 Jessica 302962 1.5436
Комментарии:
1. Вам не нужен массив, просто записывайте в любой выходной файл во время чтения из входного файла. Как вы должны различать имя мальчика и имя девочки? У вас есть основной список имен, в котором указывается, является ли имя именем для мальчиков или именем для девочек?
2. @JonnyHenly мой учитель указал токены, которые являются именами мальчиков или девочек. Когда я запускаю свой код в данный момент, я получаю сообщение об ошибке. Исключение в потоке «main» java.util.NoSuchElementException в java.base/ java.util. Scanner.throwFor(Scanner.java:937) в java.base/java.util. Scanner.next(Scanner.java: 1478) в BabyNames.main(BabyNames.java: 33) Вот почему я подумал, что мне нужно будет использовать массив.
3. Пожалуйста, отредактируйте свой вопрос и приведите пример строки из входного файла. Я понятия не имею, что находится в каждой строке, и имена переменных, такие как A, B, C, D, E, F и G, мало что проясняют.
4. @VGR Я предоставил строку из текстового файла, извините, это вылетело у меня из головы
5. Таким образом, каждая строка может содержать более одного имени (т.Е.
Michael
ИJessica
)? Также, что означают цифры? Зачем нужны цифры, если вам просто нужно отделить имена мальчиков от имен девочек?