/**
* 以二进制方式读取文件
* 文件格式:每44个byte为一条记录
* @param fileName
* @return 返回记录条数
* @throws IOException
* @author Pure Zhou 2006/10/19
*/
private Map readFile_2(File fileName)
throws IOException {
Map map = new HashMap();
int count = 0;
InputStream fis = null;
try {
fis = new FileInputStream(fileName);
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
byte tmp[] = new byte[44];
while (fis.read(tmp) != -1) {
byteout.reset();
byte context[];
byteout.write(tmp);
// 转换为String类型
context = byteout.toByteArray();
String oneRecord = new String(context);
System.out.println(oneRecord ); // 打印当前记录
count++;
}
byteout.close();
map.put("count", new Integer(count));
}
catch (IOException e) {
e.printStackTrace();
throw e;
}
finally {
if (fis != null) {
fis.close();
}
}
return map;
}
/**
* 把iso编码的str转换成gbk编码
*
* @param String
* @return String
*/
public static String isoToGbk(String str) {
if (str == null)
return null;
String result = null;
try {
result = new String(str.getBytes("ISO8859_1"), "GBK");
} catch (IOException e) {
e.printStackTrace();
}
return result;
}