recherche

Maison  >  Questions et réponses  >  le corps du texte

java8 - java.nio.charset.MalformedInputException: Input length = 2

大家讲道理大家讲道理2802 Il y a quelques jours1538

répondre à tous(2)je répondrai

  • 高洛峰

    高洛峰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

    répondre
    0
  • PHPz

    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.

    répondre
    0
  • Annulerrépondre