Puede ser que te fallase porque defines los arrays copia y fields dentro del bucle.
Tienes que declararlos fuera del bucle para que sigan existiendo al terminar este.
Código:
package palabras;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Ficheros{
public static void main (String args[]){
File f;
Scanner s;
int d;
String daddy;
String line;
String []fields;
Boolean salir=false;
f= new File("C:/fichero.txt");
daddy="Pedro";
try {
s = new Scanner(f);
do{
line= s.nextLine();
fields= line.split(",");
for(int i =0;i<fields.length;i++){
d = daddy.compareTo(fields[i]);
if(d==0){
//the proper line (la linea deseada)
System.out.println("We find the father!!!!!!!!!");
salir=true;
}
System.out.println(" ");
}
}while (s.hasNextLine() && salir==false);
s.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
No había entendido que tu querías buscar la palabra en cualquier campo de la línea, yo pensaba que sólo era en el campo 2. Como ves no hace falta un array copia.