我正在尝试读取具有多行文本的文本文件。现在我想将其输出到控制台,一次一行,因为这是文本文件的格式。很容易,对吧?我们可以用一个简单的 for 循环来做到这一点,如下所示:
lineList.forEach(System.out::println),
现在的问题是,我实际上正在使用JavaMail API,特别是访问仅接受String类型的message.setText方法。
我想知道如何在 setText 方法中将 ArrayList 输出到单独的行。我在想也许可以将该 for 循环存储为变量并在方法中调用它?
ArrayList<String> lineList = new ArrayList<>();
// New BufferedReader.
BufferedReader reader = new BufferedReader(new FileReader(
file));
// Add all lines from file to ArrayList.
while (true) {
String line = reader.readLine();
if (line == null) {
break;
}
lineList.add(line);
}
// Close it.
reader.close();
// Print each line.
for (String line : lineList) {
System.out.println(line);
}
// SetText method from the JavaMail API that does not accept the for-loop
message.setText(lineList.forEach(System.out::println);
最佳答案
如果我查看此 JavaDoc ( https://javamail.java.net/nonav/docs/api/javax/mail/Part.html ),我认为这应该有效:
// New BufferedReader.
BufferedReader reader = new BufferedReader(new FileReader(file));
// Add all lines from file to ArrayList.
while (true){
String line = reader.readLine();
if(line==null){
break;
}
lineList.add(line);
}
// Close it.
reader.close();
StringBuilder sb = new StringBuilder();
// Print each line.
for (String line : lineList){
sb.append(line);
}
// SetText method from the JavaMail API that does not accept the for-loop
message.setText(sb.toString());
关于Java - 从文本文件获取 ArrayList 内容并输出到单独的行(JavaMail API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41811908/