在java.io.randomaccessfile中,当使用writechar()方法将循环中的字符数组写入文本文件时
RandomAccessFile txtfile = new RandomAccessFile("Hello.txt","rw");
char c[] = {'S','i','g','n','e','d'};
for(char k:c) txtfile.writeChar(k);
当在普通记事本中打开时,在hello.txt中给出结果
S i g n e d
但是,当用文本编辑器notepad++打开时,hello.txt显示为
[NUL]S[NUL]i[NUL]g[NUL]n[NUL]e[NUL]d
当我使用writeutf()方法将字符串写入hello.txt时
txtfile.writeUTF("hello");
它给出的结果在前面是一个空格,当在notepad++中打开时,它显示为
[ENQ]hello
如何像本例中那样,在文件中写入或附加一个带out空格的普通行(如[nul]或[enq])?
请张贴答案如何写任何字符串到一个文件中随机存取文件在java中!
提前谢谢!
1条答案
按热度按时间8qgya5xd1#
一
char
java中的值是两个字节。RandomAccessFile
是用来读写二进制数据的。它不做任何文本转换。当被要求写一个字符时,它只将该字符的内存表示形式写入磁盘。请看文档以了解
RandomAccessFile
班级:写卡(int v)
将字符作为双字节值写入文件,首先是高字节值。
写字节(int v)
将一个字节作为一个字节的值写入文件。
写入字节(字符串)
将字符串作为字节序列写入文件。
所以使用
writeByte
而不是writeChar
将字符作为单个ascii字节写入文件,所有编辑器都应以相同的方式处理。要在一次调用中将字符串作为单字节字符写入文件,请使用writeBytes
方法,该方法获取字符串并将其作为单字节字符写入文件。如果您只想将文本写入文件,最好使用
FileWriter
或者OutputStreamWriter
让我们来上课。这些类编写文本时考虑了字符编码。前者采用默认字符编码。后者允许您指定类在写入文件之前用于将文本转换为字节的字符编码。