繁体   English   中英

Java:为什么不能使用BufferedReader将定界字符串写入文件?

[英]Java: Why can't I write delimited String to a file using a BufferedReader?

当我定界一个字符串时我遇到了一个奇怪的问题(我最终想用<和>字符定界),然后可以将其输出到屏幕上,但是当我尝试写入文本文件时,我得到了arrayIndexOutOfBoundsException。

    System.out.println(s[index]);
    String[] finalSplit = s[index].split("\\>");
    System.out.println(s[index]+finalSplit.length);
    System.out.println(finalSplit[1]);
    bufOut.write(finalSplit[1]);

上面的示例输出如下:

    <env:MessageSentDateTime>2011-11-17T11:22:33.456Z</env:MessageSentDateTime>
    <env:MessageSentDateTime>2011-11-17T11:22:33.456Z</env:MessageSentDateTime>2
    2011-11-17T11:22:33.456Z</env:MessageSentDateTime

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
          at Main.main(main.java:81)

如果不进行拆分,则可以将整个内容写入文本文件,但我只希望信息不出现在中间。

有人对我要去哪里出错有任何建议吗?

排队

System.out.println(finalSplit[1]);

您正在访问不存在的元素1,因为拆分将全部移至finalSplit [0]。 更改分割定界符(例如“>”)

我不确定您使用的是哪个BufferedOutStream 下面的工作正常(您需要传递byte[]write方法):

String s=
    "<env:MessageSentDateTime>2011-11-17T11:22:33.456Z</env:MessageSentDateTime>";
String[] finalSplit  = s.split("\\>");
BufferedOutputStream bos = new BufferedOutputStream(
                                 new FileOutputStream(new File("delimited.txt")));
bos.write(finalSplit[1].getBytes());
bos.close();

它在delimited.txt文件中写道: 2011-11-17T11:22:33.456Z</env:MessageSentDateTime

暂无
暂无

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

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