Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 阅读带有换行符的电子邮件内容_Java_Jakarta Mail - Fatal编程技术网

Java 阅读带有换行符的电子邮件内容

Java 阅读带有换行符的电子邮件内容,java,jakarta-mail,Java,Jakarta Mail,我必须阅读javax.mail.Message中带有换行符的内容。 在我使用这个算法的时候,我在stackoverflow上找到了它,但是在通过它读取内容之后,内容没有新行,所以当我读取字符串时,Scanner.nextLine()只读取一行 private String getTextFromMimeMultipart( MimeMultipart mimeMultipart) throws Exception{ String result = ""; int

我必须阅读javax.mail.Message中带有换行符的内容。 在我使用这个算法的时候,我在stackoverflow上找到了它,但是在通过它读取内容之后,内容没有新行,所以当我读取字符串时,Scanner.nextLine()只读取一行

private String getTextFromMimeMultipart(
        MimeMultipart mimeMultipart) throws Exception{
    String result = "";
    int count = mimeMultipart.getCount();
    for (int i = 0; i < count; i++) {
        BodyPart bodyPart = mimeMultipart.getBodyPart(i);
        if (bodyPart.isMimeType("text/plain")) {
            result = result + "\n" + bodyPart.getContent();
        } else if (bodyPart.isMimeType("text/html")) {
            String html = (String) bodyPart.getContent();
            result = result + "\n" + org.jsoup.Jsoup.parse(html).text();
        } else if (bodyPart.getContent() instanceof MimeMultipart){
            result = result + getTextFromMimeMultipart((MimeMultipart)bodyPart.getContent());
        }
    }
    return result;
}
私有字符串getTextFromMimeMultipart(
MimeMultipart(MimeMultipart)引发异常{
字符串结果=”;
int count=mimeMultipart.getCount();
for(int i=0;i
好的,我已经解决了我的问题。字符串没有新行,因为Jsoup.parse()会删除所有新行。这就是解决方案:

String html = (String) bodyPart.getContent();
String parsedHtml = Jsoup.parse(html.replaceAll("(?i)<br[^>]*>","br2n")).text();
result = result + System.getProperty("line.separator") + parsedHtml.replaceAll("br2n", System.getProperty("line.separator"));
stringhtml=(String)bodyPart.getContent();
字符串parsedHtml=Jsoup.parse(html.replaceAll(“(?i)]*>”,“br2n”)).text();
result=result+System.getProperty(“line.separator”)+parsedHtml.replaceAll(“br2n”,System.getProperty(“line.separator”);

不太清楚您在阅读内容时做了什么。如果您在Windows上,可能只是使用\n而不是\r\n。但这只是一个猜测。请重新表述您的问题并提供更多信息。好的,我已经解决了我的问题。字符串没有新行,因为Jsoup.parse()会删除所有新行。这是解决方案
stringhtml=(String)bodyPart.getContent();字符串parsedHtml=Jsoup.parse(html.replaceAll(“(?i)]*>”,“br2n”)).text();result=result+System.getProperty(“line.separator”)+parsedHtml.replaceAll(“br2n”,System.getProperty(“line.separator”)请将此添加为您自己问题的答案,这样可以帮助其他用户搜索类似问题。@DamianU您的问题和答案必须分开,请将您的答案复制到这些评论下面