日期:2014-05-20  浏览次数:20798 次

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 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……

------解决方案--------------------
肯定是可以转的

什么格式都可以用java转,只要你知道其中的转换规则

比如,原数据的一个字节是9,如果你知道规则,就可以把这个9转换成你要的真正字节,完全没问题