我有一个接受xml文件的应用程序,在上传无效的xml文件时,它会发送一封包含该文件简要信息的邮件。我还需要包含整个文件内容更新(附件),这应该是理想的方式。
这就是我尝试过的(测试代码)
InputStream input = new BufferedInputStream(new FileInputStream("C:\\Simon\\csmclientbenz.xml"))
byte[] buffer = new byte[8192]
try {
for (int length = 0; (length = input.read(buffer)) != -1;) {
System.out.write(buffer, 0, length)
}
} finally {
input.close()
}
但目前它只打印部分文件。 xml文件可以大到6MB。我错过了什么?感谢
更新
发送邮件代码
public void sendMail(mailProp,mailData)
{
logger.debug("sendMail method")
Properties properties = System.getProperties()
properties.setProperty("mail.smtp.host", mailProp.host)
Session session = Session.getDefaultInstance(properties)
try{
MimeMessage message = new MimeMessage(session)
message.setFrom(new InternetAddress(mailProp.from))
message.addRecipient(Message.RecipientType.TO,new InternetAddress(mailProp.to))
message.setSubject("Configuration failed to upload for simon@abc.com")
message.setContent(createMessage(mailData), "text/html")
Transport.send(message)
System.out.println("Sent message successfully....")
}catch (MessagingException mex) {
mex.printStackTrace()
}
}
答案 0 :(得分:2)
由于xml文件最大可达6 MB,因此在电子邮件消息中发送整个文件内容并不是一个好主意,最好将其作为电子邮件附件发送。您可以参考http://www.roseindia.net/javamail/SendAttachment.shtml查看发送电子邮件时如何发送邮件。
更好的是,您可以压缩此xml文件,然后再将其作为附件发送,以使用java的zip实体来减少附件大小(参考:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/zip/package-summary.html)
答案 1 :(得分:0)
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("C:\\Simon\\csmclientbenz.xml"))));
String line = null;
while((line = reader.readLine()) != null)
{
System.out.println(line)
}