Java:为什么我不能使用BufferedReader将分隔的String写入文件?

时间:2012-11-23 14:46:23

标签: java

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

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

有人对我出错的地方有任何建议吗?

2 个答案:

答案 0 :(得分:0)

排队

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

您正在访问不存在的元素1,因为分割将所有内容移动到finalSplit [0]。更改拆分分隔符(例如“&gt;”)

答案 1 :(得分: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:MessageSentDateTime文件中写道:delimited.txt