I've got [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) files in [UTF-16LE](https://en.wikipedia.org/wiki/UTF-16#Byte-order_encoding_schemes) encoding with a [BOM](https://en.wikipedia.org/wiki/Byte_order_mark). They might be pretty big, so I don't really like the idea of reading whole files in memory. How do I go about reading them?