java 中,如何将输入流对象 InputStream 以换行符为分隔符,将字符串内容按行转为 ArrayList 实例化的 List<String> 对象?其实有非常多的方法,通过 jdk 原生写法及借助第三方工具类等。
apache common io
直接使用 apache common io 包,具体如下:
List<String> lines = IOUtils.readLines(inputStream, "UTF-8");
google guava
也可以利用 guava 工具包,示例如下:
CharStreams.readLines(new InputStreamReader(inputStream, Charsets.UTF_8));
jdk
直接基于 jdk,自己封装一个工具类,主要转换逻辑如下:
List<String> list = new ArrayList<>();
BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
try {
while (r.readLine() != null) {
list.add(r.readLine());
}
} catch (IOException e) {
// TODO Auto-generated catch block
}