需求:不知道叫什么名字,随便起了个标题,领导要求,拍摄的照片里存有关信息(保密数据),就是说,图片拿出去,通过解析,能获取想要的数据。我是这么写的
/**
* 写入数据流
* @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 }
这是递归查询出来。

浙公网安备 33010602011771号