从二进制文件中读取

克里沙尔·马哈特

我已将数据写入二进制文件。但我不知道如何从二进制文件中读取。对于写入我有帐号,用户名,密码,名称写入二进制文件如下:

  LinkedHashMap<String, String> details = new LinkedHashMap<String, String>();
               details.put("Acount Number", "1986940573948");
               details.put("Username", "Krischal");
               details.put("Password", "8749578679");
               details.put("Name","Krischal mahat");

      String filename="dataFiles\\Customers.dat"; 

  addCustomer (filename, details.values(), true);

  public static void addCustomer (String filename, Collection col, boolean append){
      File file = new File (filename);
      ObjectOutputStream out = null;
    String str;
      try{
          if (!file.exists () || !append) out = new ObjectOutputStream (new FileOutputStream (filename));
          else out = new AppendableObjectOutputStream (new FileOutputStream (filename, append));
          Iterator itr = col.iterator();
          while (itr.hasNext()) {
               str = (String) itr.next();
               out.writeObject(str);
          }
          out.writeObject("\n");              
          out.flush ();
      }catch (Exception e){
          e.printStackTrace ();
      }finally{
          try{
              if (out != null) out.close ();
          }catch (Exception e){
              e.printStackTrace ();
          }
      }
  }

请有人通过从二进制文件中提供该客户的帐号来帮助我读取该客户的数据。我使用以下代码阅读。但它显示错误。我只想通过提供帐号来显示客户的所有数据。

 public static void check (String filename){
      File file = new File (filename);

      if (file.exists ()){
          ObjectInputStream ois = null;
          try{
              ois = new ObjectInputStream (new FileInputStream (filename));
              while (true){
                  String s = (String)ois.readObject ();
                  System.out.println (s);
              }
          }catch (EOFException e){

          }catch (Exception e){
              e.printStackTrace ();
          }finally{
              try{
                  if (ois != null) ois.close();
              }catch (IOException e){
                  e.printStackTrace ();
              }
          }
      }
  }
用户207421

“二进制”和“逐行”是相互矛盾的。下定决心。您正在使用writeObject(),这意味着二进制和序列化,并且您根本不应该编写行终止符。你只需要使用ObjectInputStream.readObject()来读取这个文件。

你也不需要迭代。只需编写整个集合对象。或者确实是整个Map,每次都没有附加。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Spark Scala中读取二进制文件

来自分类Dev

在C ++中读取二进制文件的正确方法?

来自分类Dev

从C中的文件读取二进制整数

来自分类Dev

在python中读取二进制文件时的偏移

来自分类Dev

在Java中读取C ++二进制文件

来自分类Dev

在Matlab中读取HTK二进制文件

来自分类Dev

在PHP中读取二进制文件

来自分类Dev

如何在Julia中读取二进制文件?

来自分类Dev

在Clisp中以二进制模式写入/读取文件

来自分类Dev

在C ++中从文件读取ASCII和二进制

来自分类Dev

从C中的二进制文件读取

来自分类Dev

在Fortran 90中读取二进制网格文件

来自分类Dev

使用StringStream在C ++中读取二进制文件

来自分类Dev

在C ++中读取压缩的二进制文件

来自分类Dev

从文件中读取双二进制数据

来自分类Dev

从二进制文件中读取问题

来自分类Dev

无法从二进制文件中读取结构

来自分类Dev

从 C 中的二进制文件读取值

来自分类Dev

大块读取二进制文件

来自分类Dev

从二进制文件读取

来自分类Dev

从二进制文件读取char *

来自分类Dev

从MongoDB读取二进制文件

来自分类Dev

从二进制文件读取

来自分类Dev

读取二进制文件c

来自分类Dev

读取大型二进制文件

来自分类Dev

读取/写入二进制文件

来自分类Dev

分批读取二进制文件

来自分类Dev

读取整数的二进制文件

来自分类Dev

读取已发布的二进制文件并写入新的二进制文件