文本文件,图片,声音文件和视频文件是否都以字节流的形式存储/传输?

时间:2010-12-25 07:17:00

标签: java .net stream

还有什么表示为字节流?

2 个答案:

答案 0 :(得分:5)

在某种抽象级别,几乎所有内容都作为一个序列或字节流进行存储,表示或传输。

  

好的,什么可以作为.NET中的System.IO.Stream对象或Java中的对应物存储/传输?

任何可由计算机表示的信息(理论上)都可以转换为字节序列,并通过面向字节的I / O流进行存储/传输。您可能需要编写一些软件来将信息的计算机表示转换为适合通过字节流传输的字节序列。但是,任何有限表示都可以转换为字节。

您不能表示和传输的唯一事物是字节流是那些只有无限表示的东西(例如Pi的完整值,或所有素数的集合),以及那些没有数字表示的东西(例如美女或巴拉克奥巴马)。


  

好的,什么可以作为.NET中的System.IO.Stream对象或Java中的对应物存储/传输?

我不了解.NET案例,但Java ObjectOutputStream仅适用于实现SerializableExternalizable接口的类。 (在前一种情况下,原始对象的非瞬态闭包中的所有其他类也必须实现Serializable。)

某些系统类不是Serializable;例如,Thread,Process,各种IO类和大多数AWT / Swing相关的类。共同的主题是这些类都涉及由操作系统管理的某种资源。

答案 1 :(得分:1)

这可能更像是一个哲学问题,但是你可以客观地想到的任何东西都可以存储为一系列数字。字节只是一个示例,但您可以将它们存储为一系列数字,文本字符(因为they are also translatable to numbers),花生在桌面上, 任何内容。 < / p>

例如,您可以表示相同的字节或十六进制数字本身表示为十进制数字和字符A,B,C,D,E和F对吗?比如

#nav{color:#123ABC;}

你也可以Base-64任何东西,Base64意味着有64种可能性。如果你愿意,你可以组成Base65,它也会起作用。

然后可以代表什么?你能想到什么?你能理性地定义什么?所有可以想到的都可以表示为数字流 - 我们的硬盘中的每个文件都是一个接一个地在一个巨大的流中,“文件夹”,“文件”等的概念只是一个偏移的抽象。我们解释为字节,整数,字符等的巨大的1和0链。