我写了一个小程序把txt里的数据按行读取,因为每行都是 String \t String \t String的格式所以用 \t分割存储到Arraylist里面, 再把想要的部分写到一个新的文件里 代码大概如下
public static void main(String args[])throws Exception{
BufferedReader read = new BufferedReader(new InputStreamReader
(new FileInputStream("C:/a.txt"));
String str = null;
List<String[]> list = new ArrayList<String[]>();
while((str = read.readLine()) != null){
list.add(str.toLowerCase().split("\\u0009"));
}
read.close();
FileOutputStream out = new FileOutputStream("C:/b.txt",true);
for(int i = 0;i < list.size();i++){
String t[] = list.get(i);
out.write((t[1]+"\t"+t[2]+"\r\n").getBytes());
}
out.close();
}
不知道Arraylist是那地方出错了,还望各位大神帮我看看,万分感谢了!
能不能在定义的时候定义arraylist的容器数量呢,用代码的话怎么把它定义成三个呢,谢谢谢谢
追答不能,list的长度是可变的
确实有两个元素的情况这样的话应该怎么处理呢
追答加数组length长度的条件判断,代码中尽量不要直接用t[1],t[2]这种比较直接的东西可以类似于这样
for(int i = 0;i < list.size();i++){
String t[] = list.get(i);
StringBuilder sb = new StringBuilder();
for(int j=1 ; j<t.length ; j++)
{
sb.append(t[j]);
if(j!= t.length-1){
sb.append("\t");
}
}
sb.append("\r\n");
out.write(sb.toString().getBytes()); }
如果是0, 1的话报错是 1
因为原文每行是用两个 \t 分成了3部分,我想要的是后面两个部分,所以就想要0,1,2 中的 1和2两部分,不知道这个逻辑对不对,因为刚接触所以可能会有些混乱,还望包涵