Вы не упомянули четко формат строки из текстового файла. Я предполагаю, что пока у вас есть текстовый файл, в котором каждая строка похожа на
someone=140000
И вы пытаетесь прочитать эти строки текста и проанализировать каждую из них для объекта Item
, который содержит свойство String
(я полагаю, вы называете его name
) и свойство int
( Я полагаю, вы называете это number
)
Если это так, вам нужно прочитать текстовый файл построчно и обработать его дальше. Есть несколько способов читать текстовый файл построчно.
BufferReader
Это очень распространенный и пока наиболее подходящий способ чтения текстового файла с точки зрения производительности.
List<Item> particulatItems = new ArrayList<>();
// using try-with-resource that will help closing BufferedReader by own
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
particularItems.add(processLine(line));
}
}
Сканер
Вы также можете использовать Scanner
.
try (Scanner scanner = new Scanner(new File(fileName))) {
while (scanner.hasNext()) {
particularItems.add(processLine(line));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Вы должны извлечь логику обработки строк в независимую функцию. Это хорошая практика чистого кодирования.
public static Item processLine(Strinng line) {
String[] tokens = line.split("=");
Item item = new Item(tokens[0], tokens[1]);
}
Предполагается, что у вас есть конкретный объект , определенный как Item
, и вы заполняете List
этого типа
public class Item {
String name;
int number;
public Item(String name, String numtxt) {
this.name = name;
this.number = Integer.parseInt(numtxt);
}
// setter getter
}
Подробнее:
- Как читать большой текстовый файл построчно с помощью Java?
- Различные способы чтения текстового файла в Java
- Разница между сканером и BufferReader
- Try-with-resources в Java 7