bufferewd阅读器间距字符串

时间:2015-11-10 06:55:03

标签: java file-io bufferedreader

我有以下代码:

StringBuilder builder = new StringBuilder();
String fichier = "achats.txt";

try{
    InputStream ips=new FileInputStream(fichier);
    InputStreamReader ipsr=new InputStreamReader(ips);
    BufferedReader br=new BufferedReader(ipsr);
    String ligne;

    while((ligne=br.readLine())!=null){
        builder.append(ligne);
    }

    br.close();
}
catch (Exception e){
    System.out.println(e.toString());
}

我的文件文字是

  

Jean Boucher,32134564,543,54
  Gilles Boucher,32145425,555,21

我遇到以下问题:从文件中读取后,我觉得这样:

  

J e a n B o u c h e r,3 2 1 3 4 5 6 4,5 4 3,5 4

我尝试删除所有空格但仍保持不变。我不太关心我的screeen上的样子。但我需要数字543和555没有空格,所以我可以将它们从字符串转换为int。有人在阅读之后是否有任何提示如何使其清洁?

1 个答案:

答案 0 :(得分:-1)

这种情况正在发生,因为您的文件包含大小为1字节的数据,但读取器类用于读取字符而不是字节,并且对于从文件读取的每个字符使用2个字节。您必须使用InputStream类而不是InputReader类。

StringBuilder builder=new StringBuilder();
           String fichier="achats.txt";
           byte [] ar = new byte[1];
           try{
               InputStream ips=new FileInputStream(fichier);
               BufferedInputStream br=new BufferedInputStream(ipsr);
               ar[0] = -1;
               while((ar[0] = br.read()) != -1){
                    builder.append(new String(ar[0]));
                }
                ips.close();
                br.close();
               }
             catch (Exception e){
             System.out.println(e.toString());
               }