一段关于BASE64编解码的代码,请高手指教
编码如下:
FileInputStream fin = new FileInputStream("d://test.txt");
BufferedInputStream bin = new BufferedInputStream(fin);
DataInputStream din = new DataInputStream(bin);
String inLine = din.readLine();
String tempString = "";
while(inLine != null)
{
tempString = tempString + inLine;
inLine = din.readLine();
}
String encodedString = (new sun.misc.BASE64Encoder()).encode(tempString.getBytes());
解码如下:
public static String getFromBASE64(String src)
{
if(src == null)
{
return null;
}
try
{
byte[] b = (new sun.misc.BASE64Decoder()).decodeBuffer(src);
return new String(b);
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
FileOutputStream fout = new FileOutputStream("c://2005.txt");
BufferedOutputStream bout = new BufferedOutputStream(fout);
DataOutputStream dout = new DataOutputStream(bout);
String s = link.getElementsByTagName("attachment").item(0).getFirstChild().getNodeValue();
// dout.writeBytes(new String(getFromBASE64(s).getBytes("ISO-8859-1"),"UTF-8"));
dout.writeBytes(getFromBASE64(s));
问题是:
我解码得到的文件是乱码,尝试了无数方法还没解决,望高手指教。