我需要逐行读取大型csv文件。我唯一的问题是这个文件没有使用\ n作为换行符,而是使用char 2.所以我需要的是行line-seq
,但能够指定换行符。
答案 0 :(得分:1)
我对用例很感兴趣;)
所以我建立了一个快速的图书馆,希望能够完成这项工作。
https://github.com/hellonico/custom-reader
基本上由2个测试用例解释,所以复制粘贴在这里:
使用文件test.txt
thisisaline 2thisisanotherline2thisisathirdline
这给出了:
(deftest test-with-special-line-ending-char-has-3-lines
(let [
rdr (custom.java.BufferedReader. (java.io.FileReader. "resources/test.txt") \2)
]
(is (= 3 (count (line-seq2 rdr))))))
使用常规文件:
this is
counted
as
only one line
这给出了
(deftest test-with-normal-line-endings (let [
rdr (custom.java.BufferedReader.
(java.io.FileReader. "resources/test2.txt") \2)
]
(is (= 1 (count (line-seq2 rdr))))))
让我们看看这是否通过了你的大型csv测试。