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转换成你要的真正字节,完全没问题