繁体   English   中英

如何从Java中的txt文件提取以下信息

[英]How can I extract the following information from a txt file in java

例如,我正在编写一个基于电子邮件(控制台)的应用程序以取乐。 我试图将文件合并到其中以从中读取信息。 例如,如果我的txt格式如下,如何读取每个变量?

Server: gmail
User: test@mail.com
Password: pass123
To: to@mail.com
CC: to@mail.com, to@mail.com, to@mail.com
BCC: to@mail.com, to@mail.com
Subject: subject
Body: 123
454
6464
This is still part of the body
File: filename.zip

但是,我相信CC和BCC应该是一个字符串数组,对吗?

您尝试过JavaMail吗? 您包括了该标签,所以我假设您知道它是什么。

使用采用InputStreamMimeMessage构造函数 请注意,该文件实际上必须是MIME格式,您上面的示例并不完全是。

正如Bill Shannon所说,您的问题有点含糊,但我认为您正在尝试找到一种从文本文件中读取键/值对的方法,以便您可以使用这些方法以编程方式编写电子邮件。 如果是这样,我相信您将希望通过执行以下操作来继续。

首先,您上面列出的数据实际上是名称/值对,分隔为:

name1: value1
name2: value2
...
nameN: valueN

如果是这样,正确的约定是使用.properties文件。 为此,您希望将键/值对定界为:

name1=value1
name2=value2
...
nameN=valueN

因此,您上面的数据将类似于:

server=gmail
user=test@mail.com
password=pass123
to=to@mail.com
cc=cc1@mail.com,cc2@mail.com,cc3@mail.com
bcc=to@mail.com,to@mail.com
subject=This is my Subject
body=123 \
454 \
6464 \
This is still part of the body
file.name=filename.zip

请注意,在“ body”属性的每一行末尾都使用反斜杠。 它们避开了换行符,因此您最终只能获得一行。

如果将以上内容保存到名为email.properties的文件中,则可以像这样在Java程序中访问它们:

import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;

public class EmailComposer {

    public static void main(String[] args) throws IOException {

        Properties properties = new Properties();
        properties.load(new FileReader("email.properties"));

        for (Map.Entry<Object, Object> property : properties.entrySet()) {
            String key = property.getKey().toString();
            String value = property.getValue().toString();
            System.out.printf("%s --> [%s]\n", key, value);
        }
    }
}

这将产生以下输出:

cc --> [cc1@mail.com,cc2@mail.com,cc3@mail.com]
server --> [gmail]
user --> [test@mail.com]
body --> [123 454 6464 This is still part of the body]
bcc --> [to@mail.com,to@mail.com]
subject --> [This is my Subject]
to --> [to@mail.com]
password --> [pass123]
file.name --> [filename.zip]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM