@RequestMapping("/test")
fun getData(): ResponseEntity {
val items = repository.getItems()
val outputStream = ByteArrayOutputStream()
myService.writeData(items, outputStream)
val byteArrayData = outputStream.toByteArray()
outputStream.close() // ---------> Do I have to close here as well?
ResponseEntity.ok()
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.header(
HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename=file.csv"
)
.body(byteArrayData)
}
Нужно ли мне также закрывать выходной поток при использовании .use функция на CSVPrinter? .use должен выполнить закрытие, просто не уверен, закрыт ли это выходной поток...
Когда выполнять выводStream.toByteArray? Можно ли это сделать после закрытия потока?
Ранее я использовал StringBuilder для создания настоящего файла .csv, но он вызывал некоторые ошибки OutOfMemory. После перехода на потоковую передачу данных использование кучи не намного улучшилось... Чего мне не хватает?
У меня есть этот код. [code]@RequestMapping("/test") fun getData(): ResponseEntity { val items = repository.getItems() val outputStream = ByteArrayOutputStream()
myService.writeData(items, outputStream) val byteArrayData = outputStream.toByteArray()
outputStream.close() // ---------> Do I have to close here as well?
ResponseEntity.ok() .contentType(MediaType.APPLICATION_OCTET_STREAM) .header( HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.csv" ) .body(byteArrayData) } [/code] А также [code]fun writeData(items: List, outputStream: ByteArrayOutputStream) { CSVPrinter( outputStream.writer(), CSVFormat.DEFAULT ).use { csvPrinter -> items.forEachIndexed { index, it -> csvPrinter.printRecord(…) } } [/code] Возникает несколько вопросов: [list] [*]Нужно ли мне также закрывать выходной поток при использовании .use функция на CSVPrinter? .use должен выполнить закрытие, просто не уверен, закрыт ли это выходной поток... [*]Когда выполнять выводStream.toByteArray? Можно ли это сделать после закрытия потока? [*]Ранее я использовал StringBuilder для создания настоящего файла .csv, но он вызывал некоторые ошибки OutOfMemory. После перехода на потоковую передачу данных использование кучи не намного улучшилось... Чего мне не хватает? [/list]
У меня есть этот код.
@RequestMapping( /test )
fun getData(): ResponseEntity {
val items = repository.getItems()
val outputStream = ByteArrayOutputStream()
myService.writeData(items, outputStream)
val byteArrayData = outputStream.toByteArray()...
У меня проблемы с потоковой передачей от Flir Grasshopper3 до OpenCV. Есть ли способ транслировать непосредственно от камеры FLIR в мой код с помощью Python? Когда я использую приведенный ниже код, CV.VideoCapture не может распознать камеру FLIR в...
Я пытаюсь погрузиться в большой паркетный файл с полярными. Это должно быть легко достичь в (1) памяти:
import os ; os.environ = '4'
import polars as pl
import time, random
import numpy as np
random.seed(42)
Я создаю файловую службу загрузки в контроллере Spring.
Мой ByteArrayOutputStream записан непосредственно в ответ.getOutputStream с использованием метода ByteArrayOutputStream.writeTo(response.getOutputStream) ). Пока все работает нормально.
Мой...
Я намерен выполнить некоторые интенсивные операции памяти в очень большом файле CSV, хранящемся в S3, используя Python с намерением перенести скрипт в AWS Lambda. Я знаю, что могу прочитать во всей памяти CSV NTO, но я обязательно столкнусь с...