我有一個字節[],我需要做的是逐行讀取內容。在Java中,我們可以通過將其轉換爲BufferedReader來獲得。但是如何使用Groovy Script來實現呢?從Groovy的byte []中逐行讀取文件內容
回答
使用的電源Groovy JDK:
new ByteArrayInputStream(arr).eachLine('UTF-8') { line ->
println line
}
注意:如果你需要一個1:字節字符之間1映射(對於爲例當處理二進制數據時),使用iso-8859-1
作爲編碼。
你可以這樣做(檢查編碼作品):
def input = '''|A small ae: æ
|And an o with stroke: ø'''.stripMargin()
println "Input is:"
println input
// Get the bytes for the input
byte[] arr = input.getBytes('UTF-8')
然後,閱讀此字節數組的每一行,你只需要做:
println "Output is:"
new InputStreamReader(new ByteArrayInputStream(arr), 'UTF-8').with {
eachLine { line ->
println line
}
}
+1中正確使用編碼。我想建議在未來的開始避免這個簡單的例子 - 編碼應該始終提供。如果你需要1:1的映射,請使用'iso-8859-1' –
還要注意,你可以使用'new ByteArrayInputStream(arr).eachLine('UTF-8'){line - > println line}' –
@AaronDigulla不錯的選擇!如果您將其作爲答案發布,我會將其投票,因爲它比我的建議更好。按照我的意見,剔除我的第一部分代碼...忽略編碼是失敗的途徑... –
- 1. 如何從vb 6中逐行讀取文本文件內容?
- 2. 從ArrayList中讀取/寫入文件內容<Byte>
- 3. 從文件中逐行讀取
- 4. 從C文件中逐行讀取
- 5. 從java文件中逐行讀取
- 6. 從一個文件中逐行讀取
- 7. 從文件中逐行讀取整數
- 8. 如何從一個文件逐行讀取並執行內部內容
- 9. groovy讀取文件,解決文件內容中的變量
- 10. 從文件行逐行讀取
- 11. 從文本文件逐行讀取C++
- 12. android - 從文本文件逐行讀取
- 13. 如何逐行讀取文件的內容
- 14. 從txt文件中逐行讀取並逐行分割
- 15. 從文件中逐行逐行讀取C
- 16. 逐行讀取文件
- 17. C++逐行讀取文件
- 18. 逐行讀取.json文件
- 19. 逐行讀取csv文件
- 20. 逐行讀取文件
- 21. 逐行讀取文件
- 22. 如何從文件中逐行讀取內部AWK
- 23. 從shell腳本逐行讀取文件
- 24. 逐行讀取文件,逐字符C
- 25. 文件的讀寫,而逐行讀取文件中的行
- 26. Groovy逐行讀取文件,eachLine方法使用BufferedReader
- 27. 從文件中逐塊讀取,然後逐行分割測試
- 28. 如何從txt文件中逐字符讀取字符並逐行讀取C++
- 29. Android逐行讀取大文件
- 30. 在c中逐行讀取文件#
您在標題中說_「閱讀文件內容_」,但不要在問題中提及文件...您準備做什麼?我的回答覆蓋了嗎? –
是的,你給了我預期的結果。真的非常感謝您的支持。你能告訴我關於第二種方法,即「def input ='''| A small ae:æ | and o with stroke:ø'''stripMargin()」 – Palani
'stripMargin' [只是多行文字](http://groovy.codehaus.org/groovy-jdk/java/lang/String.html#stripMargin%28%29)在源代碼 –