java如何把一个以文本存储的文件转化为二进制文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何把一个以文本存储的文件转化为二进制文件相关的知识,希望对你有一定的参考价值。
参考技术A 不需要转换。解释:任何文件的存储都是通过二进制的形式进行存储的,只不过经过机器语言编译后,展示给用户的体验是中文或者是字符串形式。
备注:如果是想将数字转换为二进制,可以直接通过Integer的toBinaryString方法直接进行转换,举例:
int i =8;
System.out.println(Integer.toBinaryString(i));
输出结果就是:1000. 参考技术B 并不是所有的文本形式的文本都可以转化为二进制形式的。只有纯数字的可以。比如说137文本形式是110001(1) 110011(3) 110111(7),而二进制形式则为10001001(137)。 参考技术C 使用ava.io包中的某些类本回答被提问者采纳 参考技术D 任何文件都是二进制文件,包扩文本。。。。。。你可以去看看编码方面的资料
mycp
内容
- 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:
- java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)
import java.io.*; /** *Created by xiang on 2018/6/10. */ public class MyCP { public static void dumpToTwo(InputStream src, OutputStream dest) throws IOException { try (InputStream input = src; OutputStream output = dest) { byte[] data = new byte[1]; int length; while ((length = input.read(data)) != -1) { String str = Integer.toBinaryString((data[0]&0xFF)+0x100).substring(1);//Byte.parseByte(Integer.toBinaryString(num)); //转换为二进制文件 data[0] = Byte.parseByte(str); output.write(data, 0, length); } } } public static void dumpToTen(InputStream src, OutputStream dest) throws IOException { try (InputStream input = src; OutputStream output = dest) { byte[] data = new byte[1]; int length; while ((length = input.read(data)) != -1) { data[0] = Byte.parseByte(String.valueOf(data[0]),10); //转换为十进制文件 output.write(data, 0, length); } } } public static void main(String[] args) { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("D:/Java/from.txt"); fos = new FileOutputStream("D:/Java/to.txt"); dumpToTen(fis, fos); }catch(Exception e) { System.out.println(e); } } }
结果
以上是关于java如何把一个以文本存储的文件转化为二进制文件的主要内容,如果未能解决你的问题,请参考以下文章