- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经完成了研究,但似乎找不到有关该主题的足够文档。
在 Object streams 上尝试一些代码时,我注意到将 BufferedOutputStream 放入 ObjectOutputStream 会导致文件写错。为了让事情更清楚,这是我使用的代码:
public class Objectstream implements Serializable{
private static final long serialVersionUID = 1L;
public int x;
public Objectstream(){}
public Objectstream(int x){
this.x = x;
}
public static void main(String[] args) {
try(
//ObjectOutputStream objOutStream = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("/homes/f17oudbi/Bureau/o.txt")));//1
ObjectOutputStream objOutStream = new ObjectOutputStream(new FileOutputStream("o.txt"));//2
ObjectInputStream objInputStream = new ObjectInputStream(new FileInputStream("o.txt"));
){
Objectstream obj = new Objectstream(7);
objOutStream.writeObject(obj);
objOutStream.flush();
System.out.println(((Objectstream)objInputStream.readObject()).x);
}catch(EOFException e){
e.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
}
}
如果我取消注释第一行并注释第二行,则写入的 Objectstream 只会在文件中写入 \AC\ED\00\00
(这与我如何更改它无关);但是,如果我保持代码不变,它会在对象上写入一些带有引用的内容,并且可以很好地完成工作。
有谁能解释一下为什么会这样吗?
编辑:
我收到以下异常 java.io.EOFException
,该异常指向创建 ObjectOutputStream
方法的行。
最佳答案
您试图在您正在写入的同一文件上创建ObjectInputStream
- 您甚至从未进入try-with-resources block 的主体。
发生的情况是这样的:
FileOutputStream
:文件为空BufferedOutputStream
中:文件保持为空ObjectOutputStream
中:OOS 将数据写入 BufferedOutputStream,但已进行缓冲FileInputStream
ObjectInputStream
- 尝试从输入流中读取数据,发现它是空的,然后抛出异常基本上,我强烈建议您不要尝试从您正在写入的同一个流中读取 - 我怀疑这是它会导致的唯一问题。
关于java - ObjectOutputStream 取 BufferedOutputStream 时不写入对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46587429/
大家好,我遇到一些错误,所以我尝试使用 spring boot 和 React js 导入 excel 文件但在我的后端我收到错误 构造函数 BufferedOutputStream(FileOutp
我正在使用 BufferedOutputStream 写入文件。在调试时,我注意到即使操作系统显示文件已获得最终大小,刷新操作也会花费很长时间。 我的理论:BufferedOutputStream告诉
我正在尝试使用 TCP 开发一个简单的 Java 文件传输应用程序。我当前的服务器代码如下: package tcp.ftp; import java.io.BufferedInputStream;
我尝试创建一个 TFTP 服务器,但当它接收到一个文件时,似乎并非所有文件都保存到服务器上(缺少一些字节)。文件创建良好,大部分数据已写入,但由于文件不完整,因此被归类为损坏且无法打开。有谁知道如何解
我有几个问题- 1. 我有两台通过套接字连接的计算机。当程序执行时 outputStream.writeInt(value); outputStream.flush(); 究竟发生了什么?程序是否等到
我正在编写下载 servlet,它读取 html 文件并写入 servletOutputStream,传输的文件末尾的问题是添加一些垃圾数据,对此有何建议, 下面是我为此使用的代码 i
我制作的函数有一点问题。我希望每次我给这个函数一个字符串,它都会将我保存到同一文件中的新行,但实际上现在只保存我给出的最后一个字符串。这就像一次又一次的覆盖,需要一些帮助 public void Wr
我了解BufferedOutputStream 背后的理论。字节被写入缓冲区数组,直到它已满,然后写入(刷新)到底层流 - 这个想法比逐字节写入更快,因为操作系统调用更少。 但是,从 Buffered
我想知道 BufferedOutputStream 的用途,使用它时的性能提升? 最佳答案 这是来自 API of BufferedOutputStream 的行: The class impleme
我正在使用以下 Java 代码将一个字节写入文件 fileoutput.txt: FileOutputStream fos=new FileOutputStream("C:/tests/fileout
在Java中,我试图将服务器制作的每个BufferedOutputStream存储到线程之外的数组中,以便向所有连接的客户端广播一些数据。 // initialisation ArrayList
我有一个文件,其中包含一个写入文件开头的序列化 String 对象,后跟我尝试提取的文件的原始字节。 这是我的代码: FileInputStream fileInputStream = new Fil
这个问题已经有答案了: Java BufferedOutputStream vs OutputStream [duplicate] (1 个回答) 已关闭 4 年前。 在 java 8 中,以下之间有
这个问题已经有答案了: Sockets: BufferedOutputStream or just OutputStream? (1 个回答) 已关闭 8 年前。 BufferedOutputStre
我有多个实现 void convert(List list, OutputStream os) 方法。 给定的资源可以重用,因此方法实现不会释放它们。不过,在某些情况下,我想用 BufferedOu
我想使用 BufferedOutputStream 发送单独的消息。所以我做 bos.write(msg1); bos.flush(); bos.write(msg2); bos.flush()。另一
我试图在两端使用 BufferedOutputStream 和 BufferedInputStream 将文件从“服务器”发送到“客户端”。问题是,虽然我在每次写入(右侧)时刷新()服务器上的 Buf
我正在用 java 读取和写入图像文件。该文件可以是任何类型,所以我在写入图像时使用了缓冲读取器和写入器,但写入不正确。图像散落。 BufferedReader bufferedRea
我对 BufferedOutputStream 有疑问。我想通过套接字连接将 kml 文件从 Android 设备发送到 java 服务器。(连接正常,我已经可以在程序的其他部分与 PrintWrit
我正在尝试使用 Robert Sedgwick 在他的算法 4E 教科书中提供的 BinaryStdOut.java 类。该类的代码可以在他的网站上免费获得,但为了便于引用,我将在此处显示它的相关片段
我是一名优秀的程序员,十分优秀!