JAVA 可否转换文件的格式
我现在有个 后缀名为 .info 的文件
现知道里面存放的信息正确解析出来是的是一些文字和时间信息
但是是经过处理的 用记事本是无法查看的
用Java IO流能不能 将信息转换出来生存一个新的文件
也就是想把 .info 文件 转换成 .TXT 文件
试了几种方法都不行
求高手 指教 想这样经过处理的文件正确解析 需要什么必要的条件
[解决办法]
如果文本文件无法直接查看,那么就必须要知道.info文件具体的格式了,否则无法解析数据更无法进行什么装换了
[解决办法]
现在你只给出文件后缀名 压根就没办法转换, 你必须知道原来文件内容的格式
我比个例子:MP3格式转换工具可以将一首MP3转为wav 假如你将图片文件后缀名JPG改名为MP3
它还能转成功吗?因为工具不认识内容是JPG格式
[解决办法]
你如果文本那样读进来再写出去肯定不管用的 跟格式没关系 如果二进制数据就对应的文本内容你改成exe用文本浏览也可以看到内容
最起码你要知道哪些部分是对应什么东西的,比如序列化的话 你得知道当前的数据是什么类型的再读
[解决办法]
能解析出来就先把信息解析出来然后写入新的文件
[解决办法]
必须要先知道文件里面存放的内容的格式。要不然肯定没法做。
[解决办法]
- Java code
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package mybean;/** * * @author YAYA */import java.io.*;import java.util.logging.Level;import java.util.logging.Logger;public class NewClass { public static String file2string(String filename) throws IOException{ StringBuilder sb=new StringBuilder(); String s; BufferedReader in = new BufferedReader(new FileReader(filename)); while((s=in.readLine())!=null){ sb.append(s+"\n"); } return sb.toString(); } public static void main(String args[]){ try { DataInputStream in = new DataInputStream(new ByteArrayInputStream((file2string("E:\\a.info")).getBytes())); Byte d; while(true){ System.out.print((char)in.readByte());} } catch (IOException ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); } }}
[解决办法]
文本编译器都读取不了,你这个代码注定是悲剧
[解决办法]
肯定是可以转的
什么格式都可以用java转,只要你知道其中的转换规则
比如,原数据的一个字节是9,如果你知道规则,就可以把这个9转换成你要的真正字节,完全没问题