Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字节流和相关的东西_Java - Fatal编程技术网

Java 字节流和相关的东西

Java 字节流和相关的东西,java,Java,我有几个关于字节流是什么,它们是如何运作的问题。如果你有一些新手友好的链接,它将适合最好的 1) 当我将字节流保存到某个txt(例如writeInt方法)中时,会得到乱码字符。他们来自哪里?文本编辑器试图解码字节,但为什么没有成功?同时,DataOutputStream类中的writeBytes()也将字符串作为字节序列写入,但这次它在文本编辑器中显示为字符。为什么? 2) DataOutputStream过滤器用于什么,它添加了什么?据说,DataOutputStream允许直接从流中写入各种

我有几个关于字节流是什么,它们是如何运作的问题。如果你有一些新手友好的链接,它将适合最好的

1) 当我将字节流保存到某个txt(例如writeInt方法)中时,会得到乱码字符。他们来自哪里?文本编辑器试图解码字节,但为什么没有成功?同时,
DataOutputStream
类中的
writeBytes()
也将字符串作为字节序列写入,但这次它在文本编辑器中显示为字符。为什么?

2)
DataOutputStream
过滤器用于什么,它添加了什么?据说,
DataOutputStream
允许直接从流中写入各种类型(
int
double
…)。这是什么意思

4) 如果我有2个docx 1000字符,第一个使用英语字符,第二个使用俄语字符。俄语文档不应该更大吗(因为据我所知,所有这些奇怪的字母可能需要超过1个字节)。但事情似乎不是这样的

5) 字节流和字符流在实现方面有什么区别?它们都保存字节序列,但字符流将其分割成若干段?这是如何实现的


谢谢大家!

Java在概念上区分了:

  • 二进制数据:
    byte[],InputStream,OutputStream
  • 文本(Unicode):
    String、char、Reader、Writer
  • 它们之间的桥接:
    InputStreamReader、OutputStreamWriter、String.getBytes(字符集)、new String(字节,字符集)
整数由4个字节组成,例如0、0、2、12表示2*256+12=524。在文件中,这些字节是不可识别的。
Integer.toString(524)
=“524”在ASCII或几乎任何字符集中的文本表示形式如下:

byte[] bytes = "542".getBytes("UTF-8"); // Three bytes: 53, 50, 52
DataOutputStream是Java对象的特殊(二进制数据)输出流。它还可以输出一个字符串,如UTF-8字节,这是人类可以识别的,在一堆二进制值中

docx格式(与odt格式一样)是一个压缩目录,内容为XML文件。XML通常是UTF-8格式的,对于西里尔文来说,这种格式会稍微多一些。然而,压缩使问题变得更为复杂

Unicode是适合[0224]的所有字符的编号。Unicode有多字节编码UTF-8,前128个ASCII字符使用一个字节,其余多个字节。在这些多字节序列中找不到
\
左右的字符(高位设置)字节0也可以被冗余地写入多字节序列,这对于基于C的软件(如操作系统)来说很好,它将0字节解释为字符串终止符(而不是Java).UTF-16使用两个字节,可以处理几乎所有的非亚洲脚本。如果Unicode数大于216,则使用类似的机制,一个Unicode字符的字符序列数。有UTF-16LE(小端)和UTF-16BE(大端)对于两个字节的顺序。上面的int示例中使用了big-endian。英特尔处理器/Windows使用little-endian


评论后:

字节是8位(0或1)的单位,其值为00000000(=0),…,11111111(=255)。ASCII字符将某些字符分配给介于0和127之间的数字,如:

32 = ' '    64 = '@'
48 = '0'    65 = 'A'
49 = '1'    66 = 'B'

关于二进制数,请参见。

Java在概念上区分了:

  • 二进制数据:
    byte[],InputStream,OutputStream
  • 文本(Unicode):
    String、char、Reader、Writer
  • 它们之间的桥接:
    InputStreamReader、OutputStreamWriter、String.getBytes(字符集)、new String(字节,字符集)
int由4个字节组成,例如0、0、2、12代表2*256+12=524。在文件中,这些字节是不可识别的。
Integer.toString(524)
=“524”在ASCII或几乎任何字符集中的文本表示形式如下:

byte[] bytes = "542".getBytes("UTF-8"); // Three bytes: 53, 50, 52
DataOutputStream是Java对象的一种特殊(二进制数据)输出流。它还可以输出一个字符串,如UTF-8字节,这是人类可以识别的,以二进制值的混乱形式输出

docx格式(与odt格式一样)是一个压缩目录,其内容为XML文件。XML通常采用UTF-8格式,对于西里尔文则更为复杂。不过,压缩会混淆问题

Unicode是适合[0224]的所有字符的编号。Unicode有多字节编码UTF-8,前128个ASCII字符使用一个字节,其余多个字节。在这些多字节序列中找不到
\
左右的字符(高位设置)字节0也可以被冗余地写入多字节序列,这对于基于C的软件(如操作系统)来说很好,它将0字节解释为字符串终止符(而不是Java).UTF-16使用两个字节,可以处理几乎所有的非亚洲脚本。如果Unicode数大于216,则使用类似的机制,一个Unicode字符的字符序列数。有UTF-16LE(小端)和UTF-16BE(大端)对于两个字节的顺序。上面的int示例中使用了big-endian。英特尔处理器/Windows使用little-endian


评论后:

字节是8位(0或1)的单位,其值为00000000(=0),…,11111111(=255)。ASCII字符将某些字符分配给介于0和127之间的数字,如:

32 = ' '    64 = '@'
48 = '0'    65 = 'A'
49 = '1'    66 = 'B'

关于二进制数,请参见。

1。)举一个例子2。)阅读文档3。)你期望得到什么4。)阅读关于字符编码的内容5。)再次阅读关于编码的内容。4)Java中的所有字符都表示为16位或2字节。从何处获取字节流?从网络获取?如果从源读取流,则每个tim获取2字节转换