Maison > Questions et réponses > le corps du texte
高洛峰2017-04-18 10:47:13
public static void main(String[] args) throws IOException {
File file = new File("/home/yangxiaohuan/Documents/TokenizeThenSplitParallelDeletePatternLTZero.txt");
InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");// 考虑到编码格式
BufferedReader br = new BufferedReader(read);
int cnt=0;
while(br.ready()){
String text = br.readLine();
cnt++;
if(cnt>=47334){
System.out.println(text);
}
System.out.println("cnt = "+cnt);
}
}
}
Le code d'origine doit importer les classes suivantes
import java.nio.file.Files;
import java.nio.file.Paths;
Mais changez-le sous cette forme
import java . io.File;
import java.io.FileInputStream;
est normal et il n'y a pas d'erreur.
De plus, certains amis ont dit que la suppression d'un caractère du texte original et de la ligne contenant l'erreur ne provoquerait pas d'erreur. Question très étrange. Je ne sais pas pourquoi il y a un problème avec nio.file.Files
PHPz2017-04-18 10:47:13
Merci pour l'invitation. Vous avez peut-être mal compris la différence entre IO et NIO. Le point le plus fondamental est que IO est orienté flux et NIO est orienté tampon. Votre code utilise évidemment les flux BufferedReader et InputStreamReader. Si vous utilisez nio, readLine ne fonctionnera pas du tout. Impossible de lire, NIO ne peut lire que le tampon, analyser la taille du tampon et lors de l'analyse des données, NIO doit payer un prix plus élevé que le blocage du flux IO.