Читайте содержимое файла построчно из byte [] в Groovy - PullRequest
2 голосов
/ 30 ноября 2011

У меня есть байт [], что мне нужно сделать, это прочитать содержимое построчно. В Java мы можем получить это, преобразовав его в BufferedReader. Но как это сделать с помощью Groovy Script?

Ответы [ 2 ]

5 голосов
/ 30 ноября 2011

Используйте всю мощь Groovy JDK :

new ByteArrayInputStream( arr ).eachLine('UTF-8') { line ->
    println line
}

Примечание. Если вам требуется отображение 1: 1 между байтами и символами (например, при обработке двоичных данных), используйтеiso-8859-1 в качестве кодировки.

3 голосов
/ 30 ноября 2011

Вы можете сделать это (проверка работоспособности кодирования):

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
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...