java - bufferewd 读取器间距字符串

标签 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());
}

我的文件文本achats是

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

我尝试删除所有空白,但仍然保持不变。我真的不在乎它在我的屏幕上是什么样子。但我需要不带空格的数字 543 和 555,这样我就可以将它们从字符串转换为整数。有人有任何提示如何在阅读后使其干净吗?

最佳答案

发生这种情况是因为您的文件包含大小为 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());
               }

关于java - bufferewd 读取器间距字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624455/

相关文章:

java - OSGI HttpService 无法正确初始化/注入(inject)

java - 如何删除 char 数组中的空白位置?

Python 随机存取文件

Java二维数组学生记录输入

java - 将文本文件中的整数读入数组的最佳方法

java - 井字游戏树

java - 如何在eclipse中的文本区域显示滚动条

Java 文件损坏问题

matlab - 如何在MATLAB中获取特定目录下的所有文件?

java - 如何从文本文件中读取并存储到java中的数组中