文件中读数据 java中,我想从文件中读数据,存到数组,怎么做.比如,文件中内容是:1 23 772 12 7我想把1和2放到一个数组,23和12放到另一个数组,77和7放到再另一个数组,怎么做. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读取每一行 split空个 就可以得到3个数,没别3个数组 每个数组 每个数组放一个就可以了 import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ReadFile { /** * 按行读取文件 * @param filePath * @return */ public List<String> read(String filePath){ List<String> list = new ArrayList<String>(); String str=null; try{ BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(filePath))); while((str=br.readLine())!=null){ if(str.length()>3){ list.add(str); } } br.close(); }catch(Exception e){ e.printStackTrace(); } return list; } /** * 分析处理 * @param list */ public void anaLysis(List<String> list){ int size = list.size(); Iterator<String> it = list.iterator(); String[] arr1 = new String[size]; String[] arr2 = new String[size]; String[] arr3 = new String[size]; int i=0; while(it.hasNext()){ String s = it.next().toString(); String[] values = s.split(" "); arr1[i] = values[0]; arr2[i] = values[1]; arr3[i] = values[2]; i++; } System.out.println("arr1=="+arr1[0]+","+arr1[1]); System.out.println("arr1=="+arr2[0]+","+arr2[1]); System.out.println("arr1=="+arr3[0]+","+arr3[1]); } public static void main(String[] args){ ReadFile rf = new ReadFile(); List<String> lt = rf.read("D:\\test.txt"); rf.anaLysis(lt); }}你的现实需求应该要比这个复杂,这里仅提供一个思路 2楼System.out.println("arr1=="+arr1[0]+","+arr1[0]);System.out.println("arr1=="+arr2[1]+","+arr2[1]);System.out.println("arr1=="+arr3[2]+","+arr3[2]); 补充一下2楼:输出的时候:System.out.println("arr1==" + Arrays.toString(arr1));System.out.println("arr2==" + Arrays.toString(arr2));System.out.println("arr3==" + Arrays.toString(arr3));就行了。2楼高手,学习了 正确 就是读出每一行转换成string 类型的在 split“ ”在转换成string【】【】形式 然后取列变行就可以了。 先创建3个数组。然后读取文本,每读到一行,就用split函数获得一个数组,然后把这个数组相应的值赋给前面创建的3个数组,这样就可以做到啦。 补充一下。用数组的话你得知道有多少元素,建议用ArrayList去做吧。 同思路,不同方式写出来的东西,运行出来怎么不一样呢? ch.ntb.usb api JAVA comm扩展包 并口通讯问题(急) 为什么continue 返回到back1的时候 不执行? 请问:如果我想把.class文件和.java文件分开存放,在JCreator中应该怎么设置?谢谢!! 能否传递类模板,而不是对象? SSL的问题 急! 急! 急! 问开发GUI的工具? 急!!!编译出错,请给解答????给分 jBuilder中一个简单的问题! 头晕了,char和String类型不符合一堆,怎么解决 数组为空报错
没别3个数组 每个数组 每个数组放一个就可以了
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ReadFile {
/**
* 按行读取文件
* @param filePath
* @return
*/
public List<String> read(String filePath){
List<String> list = new ArrayList<String>();
String str=null;
try{
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
while((str=br.readLine())!=null){
if(str.length()>3){
list.add(str);
}
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return list;
}
/**
* 分析处理
* @param list
*/
public void anaLysis(List<String> list){
int size = list.size();
Iterator<String> it = list.iterator();
String[] arr1 = new String[size];
String[] arr2 = new String[size];
String[] arr3 = new String[size];
int i=0;
while(it.hasNext()){
String s = it.next().toString();
String[] values = s.split(" ");
arr1[i] = values[0];
arr2[i] = values[1];
arr3[i] = values[2];
i++;
}
System.out.println("arr1=="+arr1[0]+","+arr1[1]);
System.out.println("arr1=="+arr2[0]+","+arr2[1]);
System.out.println("arr1=="+arr3[0]+","+arr3[1]);
}
public static void main(String[] args){
ReadFile rf = new ReadFile();
List<String> lt = rf.read("D:\\test.txt");
rf.anaLysis(lt);
}
}你的现实需求应该要比这个复杂,这里仅提供一个思路
System.out.println("arr1=="+arr1[0]+","+arr1[0]);
System.out.println("arr1=="+arr2[1]+","+arr2[1]);
System.out.println("arr1=="+arr3[2]+","+arr3[2]);
输出的时候:System.out.println("arr1==" + Arrays.toString(arr1));
System.out.println("arr2==" + Arrays.toString(arr2));
System.out.println("arr3==" + Arrays.toString(arr3));就行了。2楼高手,学习了
然后读取文本,每读到一行,就用split函数获得一个数组,然后把这个数组相应的值赋给前面创建的3个数组,这样就可以做到啦。