Member 13833497 Ответов: 1

Как я могу прочитать файл и использовать его для создания хэш-карты с ним?


Ладно, ребята, я объясню, в чем тут проблема. Я пытаюсь прочитать файл, содержащий некоторую информацию, которую я буду использовать позже для создания "продукта". Как я могу это сделать? Потому что я уже несколько недель пытаюсь решить эту проблему :( и крайний срок близок. Пожалуйста помогите :(

Что я уже пробовал:

Это основной класс

импорт java.util.*;
импорт java.io-да.*;

vendingmachine общественного класса{
public static void main(String[] args)вызывает исключение IOException{


Продукт продукт;
Дисплей Дисплей;
ProductStorage product_storage;
CoinManager coin_manager;

String parts[]=новая строка[5];
инт жетоны;
int i=0;
int lt=0;
char x;
Строка ААА;

// Имя файла, который нужно открыть.
Строковое имя файла = "products.txt";

// Это будет ссылаться на одну строку за раз
Строки = значение null;

пробовать {
// FileReader считывает текстовые файлы в кодировке по умолчанию.
FileReader fileReader = новый FileReader(имя файла);

// Всегда оборачивайте FileReader в BufferedReader.
BufferedReader bufferedReader = новый BufferedReader(fileReader);

//*StringTokenizer str = новый StringTokenizer ();*

токены=0;
в то время как((строка = командой bufferedreader.с readline()) != нуль) {

System.out.println(строка);
while (токены < 4){
х=линия.используя метод charat(я);
если (x==','){
parts[tokens]=line.substring(lt,i);
детали[жетоны].отделка();
Системы.из.код println(частей[жетоны]);
знаки++;
Системы.из.код println(я);
lt=i+2;
}
я++;
}

Системы.из.код println(я);
если (токены==4){

int a=строка.длина();
Системы.из.код println(я+"."+а);
/*parts[5]=line.substring(i,a-1);
детали[5].Отделка();
System.out.println(части[5]);*/
i=0;
токены=0;
lt=0;

}

System.out.println("...");

//parts[tokens]=line.substring(lt,i);
//System.out.println(части[токены]);
}

// Всегда закрывайте файлы.
командой bufferedreader.рядом();{
}
поймать(исключение filenotfoundexception экс) {
System.out.println("невозможно открыть файл '" + fileName + "'");
}
catch(IOException ex) {
Системы.из.код println("ошибка при чтении файла" + имяфайла + "'");
}
}
}

это файл "product" :

импорт java.io-да.*;

продукт общественного класса{
двойная цена;
Строковое имя;
int id;
статический int id_all = 0;

публичный продукт(двойная цена, строковое имя){
this.price=Цена;
this.name=имя;
this.id=id_all;
id_all++;
}

публичный продукт(двойная цена, строковое имя, int id){
this.price=Цена;
this.name=имя;
это.идентификатор=идентификатор;
}

публичный двойной getprice(){
возвратная цена;
}

общественного недействительными setprice (двойная цена){
this.price = Цена;
}

общественная строка getname(){
вернуть имя;
}

public boolean equals(Product otherproduct){
если (это.имя.равно(otherproduct.название)) {
если (это.цена == otherproduct.цена) {
если (this.id == otherproduct.id) {
вернуть true;
}
}
}
возвращать false;
}
}

Это текстовый файл, который я должен прочитать:

1, безалкогольный напиток, cocacola, 330, 1.00
2, вода, Вода, 500, 0.50
3, вода, Вода, 1000, 0.50
4, сок, кеанита, 250, 1,00
5, шоколад lacta, 100, 2.00

(просто номер, тип напитка, название, акции и цена)

1 Ответов

Рейтинг:
11

Richard MacCutchan

Вы читаете файл, но затем ничего не делаете с содержимым. Начните с объекта коллекции(След: Коллекции (Учебные Пособия Java™ )[^]), который будет содержать список продуктов. Затем, когда вы читаете каждую строку, разбейте ее на соответствующие маркеры и создайте новый объект продукта, который будет содержать данные. Добавьте этот объект в свою коллекцию и повторите до конца файла. То, что вы делаете, зависит от вас, но у вас должна быть хорошая коллекция продуктов, которыми вы можете манипулировать.


Member 13833497

Ладно, посмотрим, правильно ли я понял. Я должен: во-первых, я должен создать новый объект продукта, когда я читаю текстовый файл? но как я могу сделать это для более чем одного проекта? например. я могу исправить это 4 раза. но если кто-то добавит новый продукт в текстовый файл, программа его не прочитает. Я прав или сейчас еще больше запутался? xD

Richard MacCutchan

Не имеет значения, сколько строк деталей содержится в файле. Ваша программа должна делать то, что я предложил выше, и просто читать каждую строку. Главная проблема заключается в том, что вы делаете с данными, когда у вас есть коллекция продуктов. Предполагается ли, что они должны быть сохранены где-то (например, в базе данных), использованы для создания какого-то отчета и т. д.?

Member 13833497

я должен делать "vendingmachine".. так.. с информацией текстового файла, мне нужно сделать GUI, так кто-то может увидеть какие товары продает, цену и если количество равно 0.. видимость = ложь;