파일 스트림 처리를 둘러보기 위해 노력하고 있습니다. 다음과 같이 입력했습니다 :파일 반복, 패턴으로 나누기
bla
blubb
blubber
testcode
위와 같이 여러 파일이 있습니다. 지금, 나는 메모리에 전체 파일을 읽고 그것을 분할하는 하나의 파일 접근 방식 사용하고 있습니다 :
Files.newBufferedReader("myfile").use { f ->
f.readText().splitToSequence("\n\n").forEach {
// do my stuff
}
}
을 지금을, 나는 더 큰 입력 (이 비현실적에서 파일을 개최하고이를 일반화하기 위해 노력하고있어 메모리) 및 여러 파일. 이상적으로는, 입력 파일의 전체 디렉토리를 \n\n
으로 분할 된 라인의 단일 스트림으로 취급하고 부품을 처리해야합니다. 어떻게하면 좋을까요?
Ilia의 대답으로 어려운 Kotlin 부분을 해결했지만 필자는 "InputStreamReader (SequenceInputStream (com.google.common.collect.Iterators.asEnumeration)")를 사용하여 "파일의 디렉터리를 줄의 스트림으로 처리"를 해결했습니다. (Files.list ("myDir"). map {Files.newInputStream (it)} .iterator())), Charsets.US_ASCII) .useLines {...}' – mabi