package com.cordys.report;
import java.io.FileInputStream;
import org.apache.commons.codec.binary.Base64;
public class Encode {
public static String encodeFileStream(String filePath) //file path ex : C:\Program Files\Cordys\Web\reports\I0001180.pdf
{
try {
FileInputStream fin = new FileInputStream("E:/CSS Document/Test.pdf");
StringBuffer sb=new StringBuffer();
int lineLength = 72;
byte[] buf = new byte[lineLength/4*3];
while (true) {
int len = fin.read(buf);
if (len <= 0) {
break;
}
sb.append(Base64.encode(buf));
return sb.toString();
}
}
catch(Exception e) {
return e.getMessage();
}
}
}
答案 0 :(得分:9)
见http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64.html
尝试Base64.encodeBase64()
。
答案 1 :(得分:4)
方法Base64.encode()
不是static
。您必须创建类Base64
的实例,然后调用该方法,即执行new Base64().encode(bytes)
答案 2 :(得分:4)
您需要创建一个新的Base64对象并在该对象上调用encode
,因为该方法不是静态的,因此只能从其封闭类的实例中调用它。
Base64 b = new Base64();
sb.append(b.encode(buf));