Java 用数据填充BufferedReader
我找到的所有示例都是从文件填充BufferedReader。我需要用“for”循环中的数据填充它,如下所示:Java 用数据填充BufferedReader,java,bufferedreader,Java,Bufferedreader,我找到的所有示例都是从文件填充BufferedReader。我需要用“for”循环中的数据填充它,如下所示: List<Nodes> nodes; //there are data here BufferedReader bufRead = null; for (Node node : nodes) { //need to fill the BufferedReader with node data line by line bufRead = new
List<Nodes> nodes; //there are data here
BufferedReader bufRead = null;
for (Node node : nodes) {
//need to fill the BufferedReader with node data line by line
bufRead = new BufferedReader(new InputStreamReader(null, node.toString()+"\n"));
}
//use the BufferedReader later on
列出节点//这里有数据
BufferedReader bufRead=null;
对于(节点:节点){
//需要用节点数据逐行填充BufferedReader
bufRead=new BufferedReader(新的InputStreamReader(null,node.toString()+“\n”);
}
//稍后使用BufferedReader
您不需要“填充”一个。Reader是一个动词,意思是它读东西,所以你必须提供被读取的来源
如果您有生成文本的Java代码,您稍后会想要读取这些文本,那么请使用例如a将文本写入内存缓冲区。然后,您可以稍后使用例如a来阅读该文本
范例
更新 评论:我想知道是否有一个更“优雅”,更短的解决方案 当然,
PrintWriter
的使用是可选的,对于Reader
和Writer
的String
版本,实际上不需要调用close()
或者,您可以使用
它很好用。我想知道在我把它标记为正确答案之前,是否有一个更“简单”的、更短的解决方案……为什么?你已经有数据了。把它放进一个
bfFerreader
对你有什么好处?这只是浪费时间和空间。
String text;
try (StringWriter strOut = new StringWriter()) {
try (PrintWriter out = new PrintWriter(strOut)) {
for (Node node : nodes) {
out.println(node);
}
}
text = strOut.toString();
}
try (BufferedReader in = new BufferedReader(new StringReader(text))) {
for (String line; (line = in.readLine()) != null; ) {
// use line here
}
}
StringWriter out = new StringWriter();
for (Node node : nodes) {
out.write(node + "\n");
}
BufferedReader in = new BufferedReader(new StringReader(out.toString()));
for (String line; (line = in.readLine()) != null; ) {
// use line here
}
StringBuilder buf = new StringBuilder();
for (Node node : nodes) {
buf.append(node).append('\n');
}
BufferedReader in = new BufferedReader(new StringReader(buf.toString()));
for (String line; (line = in.readLine()) != null; ) {
// use line here
}