当我分隔一个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)
如果我不进行拆分,那么我可以将整个事情写入文本文件,但我只想要中间的信息。
有人对我出错的地方有任何建议吗?
答案 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
。