使用bufferedReader时,我是java.java中的初学者 到达readLine方法时,程序冻结。 使用DatainputStream时,readUTF方法会立即引发EOF异常,而无需读取任何行(该文件确实具有内容)。 这是我的代码:
public DataInputStream read(){
try {
DataInputStream din=new DataInputStream(new BufferedInputStream(new FileInputStream(getChosenFile())));
return din;
}
catch(IOException e) {
e.printStackTrace();
System.exit(0);
}
return null;
}
public void regexCheck(String regex,String FileStr,int line) {
Pattern check=Pattern.compile(regex);
Matcher regMatcher=check.matcher(FileStr);
while(regMatcher.find())
{
if(regMatcher.group().length()!=0) {
ar.append(regMatcher.group()+" "+line+"\n");
}
}
}
public void reader(String regex) {
int line=0;
boolean eof=false;
String c;
try {
while(!eof)
{
line++;
c=read().readUTF();
regexCheck(regex,c,line);
}
read().close();
}
catch(EOFException e) {
eof=true;
}
catch(FileNotFoundException e) {
e.printStackTrace();
System.exit(0);
}
catch(IOException e) {
e.printStackTrace();
System.exit(0);
}
}
}