我遇到循环抛出文件数组的问题
这是代码
阅读代码
public static ArrayList<String> readData(int colNo) {
Scanner sca;
try {
sca = new Scanner(new File("txt1.txt"));
while(sca.hasNext()) {
String data=sca.next();
String[] value=data.split(",");
System.out.println(value[colNo]);
}
sca.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
显示其工作原理的图像
这是主要的
public static void main(String[] args) {
ArrayList<String> Firstrow=readData(0);
for( int i=0; i<Firstrow.size();i++) {
System.out.println(Firstrow);
}
}
这在读取文件时如何显示数据格式
乔恩,1266美元,5级 史密斯,1060 $,level3 罗尼,1686 $,等级6
当在man中运行代码并调用第一行时,它必须类似于
乔恩 史密斯 罗尼
所以当到达终点时,停下来说一下第一排 我知道有一种解决办法,例如将读数存储在数组中,但我不知道 怎么做
我在excel中做了同样的事情
public static ArrayList<String> readExcelData(int colNo) {
try {
FileInputStream fis= new FileInputStream("dat.xls");
HSSFWorkbook wb=new HSSFWorkbook(fis);
HSSFSheet s=wb.getSheet(shnum);
Iterator<Row> rowIterator=s.iterator();
rowIterator.next();
ArrayList<String> list=new ArrayList<String>();
DataFormatter formatter = new DataFormatter();
while (rowIterator.hasNext()) {
String val = formatter.formatCellValue(rowIterator.next().getCell(colNo));
list.add(val);
}
System.out.println("List :::"+list);
return list;
}catch(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
答案 0 :(得分:0)
我不确定我是否正确理解了您的问题,但是如果您尝试逐行打印文件,请尝试使用bufferedReader和readLine():
FileReader fr = new fileReader(“filename”);
BufferedReaderbr = new BufferedReader(fr);
string l;
l = br.readLine();
然后
while((l = br.readline())(=null) {
}
当没有更多行要读取时,bufferedReader流方法readLine()返回null。希望这会有所帮助!
答案 1 :(得分:0)
这是我的问题的解决方案,并且有效。希望对别人有帮助。
G