Как добиться следующих результатов, используя класс PrinterWriter из текстового файла?
Мое приложение здесь запрашивает у пользователя текстовый файл,mixed.txt который содержит
12.2 Andrew 22 Simon Sophie 33.33 10 Fred 21.21 Hank Candice 12.2222
Далее приложение должноPrintWrite
ко всем текстовым файлам, а именноresult.txt а такжеErrorlog.txt, Каждая строка из mixed.txt должна начинаться с цифры, за которой следует имя. Тем не менее, некоторые строки могут содержать обратное значение, означающее «имя», за которым следует число. Те, которые начинаются с номера, должны быть добавлены кsum
переменная и записывается в файл result.txt, а строки, начинающиеся с имени вместе с номером, записываются в файл errorlog.txt.
Следовательно, на консоли MS-DOS результаты выглядят следующим образом:
введите result.txt
Итого: 65,41
введите errorlog.txt
Ошибка в строке 3 - Софи 33,33
Ошибка в строке 6 - Candice 12.2222
Хорошо, вот моя проблема. Мне удалось подняться только до той стадии, когда мне добавили все числа в файл result.txt и имена в файлы errorlog.txt, и я не представляю, как продолжить дальше. Не могли бы вы, ребята, дать мне какой-нибудь совет или помочь, как добиться нужных мне результатов?
Ниже будет мой код:
import java.util.*;
import java.io.*;
class FileReadingExercise3 {
public static void main(String[] args) throws FileNotFoundException
{
Scanner userInput = new Scanner(System.in);
Scanner fileInput = null;
String a = null;
int sum = 0;
do {
try
{
System.out.println("Please enter the name of a file or type QUIT to finish");
a = userInput.nextLine();
if (a.equals("QUIT"))
{
System.exit(0);
}
fileInput = new Scanner(new File(a));
}
catch (FileNotFoundException e)
{
System.out.println("Error " + a + " does not exist.");
}
} while (fileInput == null);
PrintWriter output = null;
PrintWriter output2 = null;
try
{
output = new PrintWriter(new File("result.txt")); //writes all double values to the file
output2 = new PrintWriter(new File("errorlog.txt")); //writes all string values to the file
}
catch (IOException g)
{
System.out.println("Error");
System.exit(0);
}
while (fileInput.hasNext())
{
if (fileInput.hasNextDouble())
{
double num = fileInput.nextDouble();
String str = Double.toString(num);
output.println(str);
} else
{
output2.println(fileInput.next());
fileInput.next();
}
}
fileInput.close();
output.close();
output2.close();
}
}
Это скриншот файла mixed.txt: