读书人

求好手点拨一个Java代码中的运行结果与

发布时间: 2013-09-15 19:58:13 作者: rapoo

求高手点拨一个Java代码中的运行结果与预期不符的原因..
类中的“ArrayList的实体:logData对象之中后进行存储”的功能....
源代码如下:


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class ReadTxt {
static ArrayList<String> logData = new ArrayList<String>();
static String text = null;
public static void read(String filePath) {
try {
FileReader input = new FileReader(filePath);
BufferedReader br = new BufferedReader(input);
while (( text = br.readLine()) != null) {
logData.add(text);
}
br.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

之后的下面的代码,是弟我进行的一个测试类:
弟我原本想要将一个硬盘中的文件中的数据被读取到内存中,然后输出到一个文件中的...
测试类源代码如下:

public class Test32 {
static String[] str1 = null;
static String[] str8 = null;
static String str10 = null;
static String Path = "D:\\MyDoc\\Dport\\MakeaTry.txt";
static int len = -1;
public Test32(){
String str = "E:\\8.txt";
ReadTxt.read(str);
len = ReadTxt.logData.size();
str8 = new String[len];
for(int i=0;i<len;i++){
str8[i]=ReadTxt.logData.get(i);


}
}
public static void main(String[] args){
new Test32();
for(int i=0;i<len;i++){
str10 =str10+str8[i];
}
str1 = str10.split(".");
int len1 = str1.length;
System.out.println(len1);
for(int i = 0;i<len1;i++){
WriteTxt.list.add(str1[i]);
}
}
}


但是,我得到的输出结果最终为:
求好手点拨一个Java代码中的运行结果与预期不符的原因.
高手,我在测试类的第18行调用了我的构造方法,并且,在第23行进行了输出.
我的文件中的数据,是“一个个的字符串”“共有200条字符串数据”“每一个字符串都采用一个"."进行分隔”,由弟我写的代码,应该可以得到:
输出的数据,应该为:
200吧?
为什么这里弟我的代码,与弟我的预期,产生了不一致?
希望得到高手的点拨:
这里的“预期与输出效果不一致”的原因是什么...?
谢谢高手!!
一百分奉上!!
一位日日夜夜向着理想奔跑的筑梦者
2013年9月15日星期日早晨6点39分 java 源代码 arraylist 类 Java?IO
[解决办法]
str10 =str10+str8[i];这个地方要加一个分隔符,改为str10 =str10+“."+str8[i];后面的 str1 = str10.split(".");改为str1 = str10.split("\\.");进行转义, "."是一个正则表达式。
[解决办法]
看一下split的API,public String[] split(String regex)
他这接收的是一个正则表达式,而.是正则表达式元字符,如果要用它进行分割,
必须进行转义\\.

读书人网 >J2SE开发

热点推荐