黑马程序员技术交流社区

标题: FileOutputStream的write方法的问题 [打印本页]

作者: 于XINCHENG    时间: 2013-8-8 00:49
标题: FileOutputStream的write方法的问题
移动了一下我刚发在22,23期的帖子,向大家请教一个问题,IO流的字节输出流,输入字母或数字(写出文件信息)时需要单引号进行修饰,但是经过单引号修饰的字母或数字为一个字符,还有一种方法就是将字符串转换为字节数组进行写入,为什么直接写出时的单位是字符,而转换成数组时的单位是字节FileOutputStream的write方法里,我查询API后没有发现可以直接写入字符的方法,这是怎么回事?

还有,论坛发帖的时候,怎么把代码块发上来的?代码块怎么存储?我用的是Eclipse,谢谢了!

1.png (14.5 KB, 下载次数: 45)

1.png

2.png (30.48 KB, 下载次数: 47)

FileOutputStream的write方法里,我查询API后没有发现可以直接写入字符的方法

FileOutputStream的write方法里,我查询API后没有发现可以直接写入字符的方法

作者: gudao20080    时间: 2013-8-8 07:24
1,流的write中写入数字时,会在码表中查找相应的字符,但是如果码表中没有相对的字符,就会返回?字符
2,中文按照编码应该是占用至少两个字节的,你用'中'这样操作,只会取到一个字节,所以会乱码
作者: xkfxm    时间: 2013-8-8 19:14
FileOutputStream的write方法可以传入字节数组,也可以传入int型整数,
当传入字节数组时,FileOutputStream会将字节数组中每个字节写入流关联的文件中;
当传入的是整数或者字符时,它会根据编码表去查该整数或者字符所对编码,然后写入到文件中,至于文件以什么样的形式展现出来还要通过编码表
发帖时插入代码如下图,点击尖括号,然后将代码粘贴到框框中:

S39%%P9A5IESZ99MLYJ3VMY.jpg (7.5 KB, 下载次数: 42)

S39%%P9A5IESZ99MLYJ3VMY.jpg

作者: 崔一恒    时间: 2013-8-8 22:21
文件都是经过计算机默认或指定编码格式查表后存入的。
FileOutputStream是字节流,是没有写入字符的方法的,因为他是不能查表的。
换成数组楼主用的是字符串的  . getBytes()方法,返回的当然是字节数组了。
楼主在写入数字时打印出的正是 ASCII中对应的字母或符号。
楼主在写入“中”时,汉字不是字节不能用单引号‘’而应该用“”,具体汉字站几个字节要看用什么码表了。如果是GBK和GB2312的话,确实是两个字节,utf-8,这种编码规则就不一定是几个字节了,2个3个可能都有的,它是变字节的,(像老师讲的单纯“联通”,就会发成编码异常)。

至于传代码就点  <> 那个符号,然后写或贴进去就行。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2