Skip to content

Instantly share code, notes, and snippets.

@auryn31
Created July 10, 2019 21:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save auryn31/811975250869ccfa14264469c6d5e6b5 to your computer and use it in GitHub Desktop.
Save auryn31/811975250869ccfa14264469c6d5e6b5 to your computer and use it in GitHub Desktop.
@Component
class DataProvider {
/**
* create flowable from sampledata.csv
* @return every 100ms one line
*/
fun getDataStream(): Flowable<String> {
val csvFile = this::class.java.getResource("/static/sampledata.csv").openStream()
return Flowable.using(
{ BufferedReader(InputStreamReader(csvFile)) },
{ reader -> Flowable.fromIterable<String>(getIterableFromIterator(reader.lines().iterator())) },
{ reader -> reader.close() })
}
/**
* convert the iterator to iterable
*/
private fun <T> getIterableFromIterator(iterator: Iterator<T>): Iterable<T> {
return object : Iterable<T> {
override fun iterator(): Iterator<T> {
return iterator
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment