打印机 println:未创建新行

2023-12-22

我正在尝试使用 Apache POI 类将 Outlook .MSG 文件解码为文本文件。

一切正常,除了println的方法PrintWriter:它不会创建新行。

它只是将每个句子直接一个接一个地连接起来。下面代码片段的结果是



"De: textPara: " iso 
"De: "
"Para: "
  

我在几台机器上尝试了该代码:它在我的本地 tomcat 安装(Windows 机器)上运行,但在 Solaris 平台上的 tomcat 或 Weblogic 安装上失败。我认为这与编码算法有关,所以我使用了PrintStream代替Printwriter,表示编码 ISO-8859-1,但也没有运气。

任何想法?

    try {
        byte [] msgByte = Base64.decodeBase64(msgBase64);

        InputStream inputMsg = new ByteArrayInputStream(msgByte);
        msg = new MAPIMessage(inputMsg);

        /* 1. Transform MSG to TXT. */
        try {
            txtOut = new PrintWriter(outputMsg);
            try {
                String displayFrom = msg.getDisplayFrom();
                txtOut.println("De: "+displayFrom);
            } catch (ChunkNotFoundException e) {
                _logger.info("Error extrayendo displayFrom: "+e);
            }
            try {
                String displayTo = msg.getDisplayTo();
                txtOut.println("Para: "+displayTo);
            } catch (ChunkNotFoundException e) {
                _logger.info("Error extrayendo displayTo: "+e);
            }

        } finally {
        if(txtOut != null) {
            txtOut.close();}
        else {
            _logger.error("No se ha podido parsear el mensaje.");
        }

        }

更改以下内容:

txtOut.print("De: "+displayFrom + "\r\n");
txtOut.print("Para: "+displayTo + "\r\n");

这与如何PrintWriter.println() http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html#println%28%29生成越线 http://en.wikipedia.org/wiki/Line_break_%28computing%29取决于操作系统。对于unix系统来说是LF (\n),对于 Windows 来说是CR+LF (\r\n).

请注意我如何添加“\r\n“ 意思是CR+LF并使用print()代替打印()。这样生成的换行符不依赖于平台。

您还可以将以下方法添加到您的类中以避免口是心非,只需调用此自定义 println() 而不是直接调用 txtOut.print()。

private static final String LINE_SEPARATOR = "\r\n";

public void println(String str) {
    txtOut.print(str + LINE_SEPARATOR);
}

这样你只需调用打印() method.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打印机 println:未创建新行 的相关文章

随机推荐

  • ansible 根据属性合并两个列表

    我在我的剧本中扮演一个角色 使用 set fact 生成两个列表 这两个事实用于不同的任务 然后我需要将它们合并以完成最终任务 list1 name alice roles role1 role2 name bob roles role1
  • 将不可序列化的类转换为字节数组

    我有一个场景 我正在多个非常不同的系统之间同步数据 数据本身相似 但不同系统上的表具有完全不同的格式 为了协助这种同步 我有一个数据库表 它存储来自每个系统的对象哈希以及项目键和其他相关信息 当任一系统中的对象的哈希发生更改时 我会更新另一
  • iOS 6 自动旋转问题-supportedInterfaceOrientations 返回值不受尊重

    我有一个应用程序 其中我有一个UINavigationController子类作为我的rootViewController 我有一个UITableViewController允许用户编辑一些设置 它应该始终处于纵向模式 将 MoviePla
  • 如何从 e.target.name 更新状态中的对象

    我正在尝试从这样的表单输入数据 h1 Company Position h1
  • 对数刻度(x 轴)直方图

    我需要的是 X 轴以对数刻度显示的直方图 但是 我仍然希望直方图中的每个条形都具有相同的宽度 不管怎样 我想出了 或发现 具有较高值的 显示条与较窄的显示条 它们在普通比例上具有相同的宽度 而不是在对数比例上 这是我现在正在做的事情 edg
  • Python c-api 和 unicode 字符串

    我需要在 python 对象和各种编码的 c 字符串之间进行转换 使用 PyUnicode Decode 从 C 字符串到 unicode 对象相当简单 但是我不知道如何走另一条路 char can be a wchar t or any
  • 基于 Rails 中每个下拉菜单的嵌套下拉框和多选框?

    我有一个要求 但如何开始有点困难 我寻求一些帮助 我有三个表 即服装 类别和材料 考虑服装表包含 男装 童装 我有一个页面来添加服装 在添加服装时 我需要一个下拉菜单 其中应列出类别 选择类别后 属于所选类别的材料应出现在多选框中 我们可以
  • angular-cli如何添加全局样式?

    我使用 Sass 创建了一个全局样式表并将其放在public style styles scss 我只指定背景颜色 在索引中 我添加了一个链接 背景颜色不适用于 body 标记 检查正文标签后 我可以看到背景颜色已应用但被否决scaffol
  • 如何在面板中的另一个 WPF 窗口内加载 WPF (xaml) 窗口?

    这可能吗 我使用了 Frame 控件并且 显示 例如 showwindow xaml 但我收到这个错误 根元素对于导航无效 确保您可以使用以下方式导航 显示 窗口 YourFrame Navigate YourWindow 然而 我不太喜欢
  • 如何使用张量板制作散点图-tensorflow

    现在 我正在研究张量流 但是 我无法使用张量板绘制点图 如果我有训练样本数据 就像那样 train X numpy asarray 3 3 4 4 5 5 6 71 6 93 4 168 9 779 train Y numpy asarra
  • jQuery - 如何按属性名称开头选择值

    我想通过给出属性名称 仅开头 来选择属性值 例如 如果我们有 html 标签 div class slide div 我想从属性中选择以以下开头的值data 先谢谢您的帮助 如果您想要所有 data 属性 您可以迭代 jq 数据对象 sli
  • 如何使用图像作为提交按钮?

    有人可以帮助更改此设置以合并名为的图像BUTTON1 JPG而不是标准submit button
  • python中编译的正则表达式对象的类型

    python中编译后的正则表达式是什么类型 我特别想评价一下 isinstance re compile 是真实的 出于内省的目的 我的一个解决方案是 有一些全局常量REGEX TYPE type re compile 但看起来不太优雅 E
  • 使用 int 与 Integer

    我遇到一个类 它使用整数变量来捕获要在 for 循环中使用的大小 这是好的做法还是我们应该使用 int 原始数据类型 Integer size something getFields size for Integer j 0 j lt si
  • 将自定义对象的数据绑定到MvvmCross中的TextView

    I have one custom object in my ViewModel I want to bind only one of its member to textview in my droid view 我只想将该对象的字符串成
  • jQuery 显示一个 Div 并隐藏其他 Div

    http jsfiddle net yrM3H 2 http jsfiddle net yrM3H 2 我有以下代码 jQuery document ready function jQuery toggle next hidden hide
  • 检查变量是否已设置然后回显而不重复?

    是否有一种简洁的方法来检查变量是否已设置 然后回显它而不重复相同的变量名称 而不是这个 我正在考虑这个 C 风格伪代码中的一些内容 PHP has sprintf http www php net manual en function sp
  • 如何更改@NotNull注释对应返回的响应JSON

    我有一个简单的代码 当 RequestBody 中不存在 customerId 时 它返回错误 json VO 类 public class OrderVO private int orderId NotNull message Custo
  • 如何向 html 5 视频添加嵌入链接

    如果您在 Discord 中链接 YouTube 视频 它会在 Discord 上显示为可播放的视频 而不仅仅是链接 对于我的视频 如果我从我的网站链接它们 不和谐会将它们显示为链接而不是视频 我听说我需要在其中嵌入链接 但我不知道我在寻找
  • 打印机 println:未创建新行

    我正在尝试使用 Apache POI 类将 Outlook MSG 文件解码为文本文件 一切正常 除了println的方法PrintWriter 它不会创建新行 它只是将每个句子直接一个接一个地连接起来 下面代码片段的结果是 De text