java中能否以16进制的方式直接写入文件,不是写入字符!
最近刚学java(全百度的)遇到一个新的问题,程序运行到这儿FileOutputStreamos=newFileOutputStream("C:/XXXX.XXX");b...
最近刚学java(全百度的)
遇到一个新的问题,程序运行到这儿
FileOutputStream os = new FileOutputStream("C:/XXXX.XXX ");
byte[] by = toStringHex(newstr).getBytes(); //到这里newstr里面存储是16进制的字符,toStringHex将16进制字符转为正常显示的字符。
os.write(by);
os.close();
JAVA里面能否直接将newstr,转为字节后直接以16进制字节存入文件中。
因为有时我需要写入图片toStringHex方法就不行了! 展开
遇到一个新的问题,程序运行到这儿
FileOutputStream os = new FileOutputStream("C:/XXXX.XXX ");
byte[] by = toStringHex(newstr).getBytes(); //到这里newstr里面存储是16进制的字符,toStringHex将16进制字符转为正常显示的字符。
os.write(by);
os.close();
JAVA里面能否直接将newstr,转为字节后直接以16进制字节存入文件中。
因为有时我需要写入图片toStringHex方法就不行了! 展开
1个回答
展开全部
你没搞明白一个问题,“16进制”是指采用“16进制”来表示数据,并不是说内存中的数据也会变成16进制。内存中的数据始终是1、0组成的二进制。
比如:10进制的10。内存中的值是1010,而采用“16进制”则表示为0xA,内存中的数据还是1010。
写图片文件是不能采用“写字符串”的方式的。
更多追问追答
追问
似懂非懂
比如:我得到一个字符“31”,我希望他写入文件后显示为“1”,如果直接写入文件,它显示的就是“31”。所以必须转化。
让字符“31”变成16进制下的“31”然后转为字符“1”,再写入文件,这是显示的才是“1”。
而我现在所希望的是将得到字符“31”转化为16进制的31,然后以16进制的方式写入。代码都是百度来的所以不怎么懂。
我知道图片是不能写字符串的,所以才向百度大神求教的!
追答
你要写到什么样的文件里啊……没太明白你的要求。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询