需求:不知道叫什么名字,随便起了个标题,领导要求,拍摄的照片里存有关信息(保密数据),就是说,图片拿出去,通过解析,能获取想要的数据。我是这么写的

   /**
     * 写入数据流
     * @param from 从文件
     * @param to   终文件
     */
    void writeSource(File from,File to)
    {
    try {
    	java.io.FileInputStream fosfrom = new java.io.FileInputStream(from);
    	java.io.FileOutputStream fosto = new FileOutputStream(to);
    	byte bt[] = new byte[1024];
    	int c;
    	while((c = fosfrom.read(bt)) > 0)
    	{
    		fosto.write(bt, 0, c); //将内容写到新文件当中
    	}
    	boolean temp=DataSouce_GPS.equals("null");
    	String Source=!temp?DataSouce_GPS:"120.233341,36.455856,0.83,210";
    	String DateSource="¥"+Source+"$";
        byte[] by=DateSource.getBytes("utf-8");
    	fosto.write(by);
    	fosfrom.close();
    	fosto.close();
    	from.delete();//删除源文件
	} catch (Exception e) {
		e.printStackTrace();
	}
    readByte(to);
    }

 上面是写入数据

View Code
 1   int byteSize=120;
 2     /**
 3      * 解析文件流,筛选数据
 4      * @param file
 5      */
 6     void readByte(File file)
 7     {
 8         try {
 9             
10             FileInputStream d= new java.io.FileInputStream(file);
11             int c;
12             byte bts[]=new byte[byteSize] ;
13             while((c = d.read(bts)) > 0)
14             {
15                 
16             }
17             String CharArray=new String(bts,"utf-8");
18             String CharResult=CharArray.substring(CharArray.indexOf("¥")+1, CharArray.indexOf("$"));
19             System.out.println(CharResult);
20       
21         } catch (Exception e) {
22             byteSize+=5;
23             readByte(file);//递归继续查找
24         }
25     }

这是递归查询出来。

posted on 2012-09-11 17:12  笨 鸟  阅读(165)  评论(0)    收藏  举报