为什么我在文件中获取垃圾数据?

黄油

我正在从服务器接收文件,在客户端中,我想将此文件保存到目录中。这是完成文件保存工作的代码

          FileDetails obj1= (FileDetails)object;
          String str= "A "+obj1.fileExtension+" Received From "+obj1.source;
          JOptionPane.showMessageDialog(null,str,"Success", WIDTH, null);
          FileOutputStream saveFile = new FileOutputStream("F:\\Download\\"+obj1.fileExtension);
          ObjectOutputStream save = new ObjectOutputStream(saveFile);
          byte[] buf= convertToByteArray(obj1.file);
          save.write(buf);
          save.close();

功能convertToByteArray如下

 private byte[] convertToByteArray(File file){       
       try{
       FileInputStream fis = new FileInputStream(file);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];

        for (int readNum; (readNum = fis.read(buf)) != -1;) {
            bos.write(buf, 0, readNum); //no doubt here is 0
            bos.flush();
            System.out.println("read " + readNum + " bytes,");
        }
        byte[] bytes = bos.toByteArray();
    return bytes;
    } catch (IOException ex) {
        ex.printStackTrace();
    }
       return null;
   }

FileDetails是可序列化的对象,其中包含服务器发送的文件和中的文件名fileExtension该类如下-

public class FileDetails implements Serializable{
    public File file;
    public String fileExtension;
    public String source;
    public String destination;

}

现在的问题是我在客户端保存的文件中得到了垃圾数据。为了测试我是否从服务器接收了纯数据,我已经在控制台中打印了文件的内容并获得了预期的结果。但是,当我在指定目录中打开保存的文件时,会得到一些中文脚本,该怎么办?请帮帮我。

mttdbrd

我认为部分问题是在记事本中查看文件。如果我在另一个编辑器中打开文件,例如使用二进制模式打开TextPad,则会看到该文件以序列化标头开头。使用ObjectOutputStream将文件的二进制数据序列化为一个对象我认为您想要做的是删除ObjectOutputStream行,而是将其更改为以下内容:

FileOutputStream saveFile = new FileOutputStream("F:\\Download\\"+obj1.fileExtension);
//ObjectOutputStream save = new ObjectOutputStream(saveFile);
byte[] buf= convertToByteArray(obj1.file);
saveFile.write(buf);
saveFile.close();

那只会写出文件的字节。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我从函数调用中获取垃圾值?

来自分类Dev

为什么我的函数无法从JSON文件获取数据?

来自分类Dev

为什么在python中调用file.read会使我的文件充满垃圾?

来自分类Dev

为什么我不能删除垃圾箱中的文件夹?

来自分类Dev

为什么我无法在Redis的事务中获取缓存数据?

来自分类Dev

为什么我的程序无法从文件中读取数据

来自分类Dev

为什么在 Looper.getMainLooper()) 中接收垃圾数据

来自分类Dev

我的python文件中的垃圾

来自分类Dev

为什么我不能在查询中提交数据,并在 GraphQL 中获取突变中的数据?

来自分类Dev

为什么不收集我的.NET垃圾?

来自分类Dev

为什么不收集我的.NET垃圾?

来自分类Dev

为什么我无法从我之前设置的单例数组中获取数据?

来自分类Dev

为什么我要从一个空的mongodb数据库中获取数据?

来自分类Dev

我在通过套接字向服务器发送文件数据时得到了一些垃圾值?为什么?

来自分类Dev

为什么我不能从我的Json文件中检索数据?

来自分类Dev

为什么我总是从postgesql中的数据类型BLOB中获取空值

来自分类Dev

为什么我无法从mongodb数据库获取数据?

来自分类Dev

为什么我需要重新加载页面才能从Angular中的subjectSubscription获取数据?

来自分类Dev

为什么我在Python中获取数据帧的每个索引的列标题?

来自分类Dev

为什么我无法写入从数据库中获取的对象?

来自分类Dev

为什么我无法使用Jooq的into方法获取类中的数据库字段值?

来自分类Dev

在 D3 v5 JS 中读取 CSV:为什么我无法获取数据?

来自分类Dev

为什么我无法在请求方法中从正文中获取数据

来自分类Dev

为什么我的 post dall 没有在 MVC 和 Angular 7 中获取数据

来自分类Dev

为什么我的垃圾桶图标在12.04 LTS中不起作用?

来自分类Dev

为什么我的垃圾桶图标在12.04 LTS中不起作用?

来自分类Dev

为什么codelens在VS2015中向我的代码发送垃圾邮件?

来自分类Dev

为什么在文件系统中找不到我的SQLite数据库?

来自分类Dev

为什么我的代码中没有将“流派”数据写入 .csv 文件

Related 相关文章

  1. 1

    为什么我从函数调用中获取垃圾值?

  2. 2

    为什么我的函数无法从JSON文件获取数据?

  3. 3

    为什么在python中调用file.read会使我的文件充满垃圾?

  4. 4

    为什么我不能删除垃圾箱中的文件夹?

  5. 5

    为什么我无法在Redis的事务中获取缓存数据?

  6. 6

    为什么我的程序无法从文件中读取数据

  7. 7

    为什么在 Looper.getMainLooper()) 中接收垃圾数据

  8. 8

    我的python文件中的垃圾

  9. 9

    为什么我不能在查询中提交数据,并在 GraphQL 中获取突变中的数据?

  10. 10

    为什么不收集我的.NET垃圾?

  11. 11

    为什么不收集我的.NET垃圾?

  12. 12

    为什么我无法从我之前设置的单例数组中获取数据?

  13. 13

    为什么我要从一个空的mongodb数据库中获取数据?

  14. 14

    我在通过套接字向服务器发送文件数据时得到了一些垃圾值?为什么?

  15. 15

    为什么我不能从我的Json文件中检索数据?

  16. 16

    为什么我总是从postgesql中的数据类型BLOB中获取空值

  17. 17

    为什么我无法从mongodb数据库获取数据?

  18. 18

    为什么我需要重新加载页面才能从Angular中的subjectSubscription获取数据?

  19. 19

    为什么我在Python中获取数据帧的每个索引的列标题?

  20. 20

    为什么我无法写入从数据库中获取的对象?

  21. 21

    为什么我无法使用Jooq的into方法获取类中的数据库字段值?

  22. 22

    在 D3 v5 JS 中读取 CSV:为什么我无法获取数据?

  23. 23

    为什么我无法在请求方法中从正文中获取数据

  24. 24

    为什么我的 post dall 没有在 MVC 和 Angular 7 中获取数据

  25. 25

    为什么我的垃圾桶图标在12.04 LTS中不起作用?

  26. 26

    为什么我的垃圾桶图标在12.04 LTS中不起作用?

  27. 27

    为什么codelens在VS2015中向我的代码发送垃圾邮件?

  28. 28

    为什么在文件系统中找不到我的SQLite数据库?

  29. 29

    为什么我的代码中没有将“流派”数据写入 .csv 文件

热门标签

归档