Я пишу программу, которая открывает файл, который выглядит следующим образом: сначалаКак читать в String из файла, который может быть или не быть?
3000.0 Lamps 15.3 400 Chairs 19.95 250 Desks 95.0 300
, где первая строка является баланс компании, а остальные строки содержат название продукта, цена, и количество соответственно.
Однако в течение всей программы мы вносим изменения в файл и сохраняем то, что было сделано в конце, используя объект Printwriting. Одна из вещей, которые мы можем сделать в ходе программы, - это добавить новые предметы в инвентарь. Тем не менее, я должен иметь возможность читать в продукте, который имеет несколько имен, например, настольные стулья. Поскольку мой код написан сейчас, файл читает только имя, а затем переходит прямо к цене, поэтому, если я пытаюсь прочитать многословное имя, он дает мне ошибку времени выполнения, поскольку я пытаюсь читать строку с двойным. Поэтому, как я читаю строку, которая МОЖЕТ ИЛИ НЕ МОЖЕТ иметь две строки в ней? И, если есть две строки, как мне написать ее так, чтобы она хранила оба из них в одной и той же переменной String? Вот мой код:
File file = new File("inventory.txt");
Scanner inputFile = new Scanner(file);
ArrayList<String> productName = new ArrayList<String>();
ArrayList<Double> productQuantity = new ArrayList<Double>();
ArrayList<Double> productPrice = new ArrayList<Double>();
double balance = inputFile.nextDouble();
while (inputFile.hasNext())
{
String product = inputFile.next();
double price = inputFile.nextDouble();
double quantity = inputFile.nextDouble();
//Takes those variables and stores each of them in ArrayList objects
productName.add(product);
productPrice.add(price);
productQuantity.add(quantity);
}
inputFile.close();
Проверили ли вы это? [Проверить существующий файл с помощью java] (https://stackoverflow.com/questions/1816673/how-do-i-check-if-a-file-exists-java-on-windows) –
@Freezzo - это строка это может быть или не быть, а не файл. –
Мне не нужно проверять, существует ли файл. Я знаю, как это сделать. Мне нужно иметь возможность читать более чем одну строку, если есть имя продукта с более чем одним словом. Например, если есть строка с надписью «Desk Sairs 20.5 300», мне нужно иметь возможность хранить имя «Desk Chairs» в одной переменной String, но для этой строки только потому, что есть еще три строки с именами только одного слова , – user3525572