1

我在分隔字符串时遇到了一个奇怪的问题(我最终想用 < 和 > 字符分隔),然后我可以将它输出到屏幕,但是当我尝试写入文本文件时,我得到一个 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)

如果我不进行拆分,那么我可以将整个内容写入文本文件,但我只想要中间的信息。

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

4

2 回答 2

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();

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

于 2012-11-23T15:05:55.580 回答
0

排队

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

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

于 2012-11-23T15:02:05.033 回答