При чтении из InputStream, как мне преобразовать InputStream в объект java/scala? Пример использования, получение CSV-файла в виде потока и синтаксический анализ CSV по очереди, «на лету».Преобразование InputStream в объект Java/Scala
Например: у меня есть
case class Row(v1: String, v2: String, v3: String)
и однорядные образце CSV-файла является (Энди Морган, мужчина). Теперь предположим, что я получаю этот CSV InputStream, и этот CSV имеет миллионы строк и не может храниться в памяти. Возможно ли применить InputStream к вышеупомянутому классу case, использовать его для моей цели, отбросить экземпляр этого класса case и повторить этот процесс для всего потока.
Смутное пример будет на линиях:
try(val inputstream = new FileInputStream("file.txt")) {
var data = inputstream.read();
while(data != ???){
////// somehow convert/buffer the data and convert to Row class mentioned above
data = inputstream.read();
}
}
Я хочу понять внутренности, так что я был бы очень благодарен решение в родной Java/Скале без 3-библиотеки сторонних производителей.
Могу ли я узнать, почему это запрещено? Является ли вопрос недостаточно ясным и/или дублирующим и/или домашним заданием? – gashu
Я не являюсь нисходящим, но я предполагаю, что в вашем вопросе есть некоторые непонятные моменты: 1. InputStream уже является объектом java \ scala, что может быть точкой его преобразования 2. Анализ означает создание объектов данных из структурированных текст. Итак, как структурирован текст и какие объекты данных необходимы вам в результате 3. Почему для этой задачи может потребоваться предварительная запись файлов? Как вы могли видеть, мой комментарий длиннее вашего вопроса. Будьте более наглядными, поставьте нам свой код – Odomontois
~ Odomontis Я немного обновил вопрос. Все еще кажется неполным/запутанным? Спасибо за ввод. – gashu