У меня есть текстовый файл с 42 строками. В каждой строке более 22 000 номеров, разделенных запятыми.
Я хотел извлечь определенные числа из каждой строки, и у меня есть массив int длиной 1000, содержащий 1000 чисел, которые мне нужны из каждой из этих 42 строк.
Например, если массив содержит 43, 1, 3244, это означает, что мне нужны 43-е число, 1-е число и 3244-е числа из каждой строки, начиная с первой строки, заканчивающейся 42-й строкой.
Мой цикл for, похоже, не работает, он читает только первую строку из текстового файла, который содержит 42 строки из 220000 чисел, и я не знаю, где он идет не так.
for(int i=0;i<42;i++){ //irretates through the 42 lines of
counter=1; // to keep track about on which line the code is working
System.out.println("Starting line"+i);
st2=new StringTokenizer(raf1.readLine(),",");
//raf3 is a RandomAccessFile object containing the 42 lines
a:while(st2.hasMoreTokens()){
b=is_there(array2,counter);
// is_there is a method that compares the rank of the taken being read with
//the whole array that has the 1000 numbers that i want.
if(b==false){
// if the rank or order of token [e.g. 1st, 432th] we are stopping at
//is not among the 1000 numbers in the array
counter++;
continue a;
}
else{ //if true
s2=st2.nextToken();
raf2.writeBytes(s2); //write that token on a new empty text file
raf2.writeBytes(","); // follow the number with a comma
counter++;
}
} // end of for loop
public static boolean is_there(int[] x,int y){
boolean b=false;
for(int i=0;i<x.length;i++){
if(x[i]==y) {b=true; break;}
}
return b;
readLine()
, возвращающий ноль. - person user207421   schedule 25.04.2015