package com.cordys.report;
import java.io.FileInputStream;
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 :(得分:1)
嗯,这意味着编译器不知道在哪里可以找到名为Base64的类。 (我怀疑它是一个变量。)步骤:
您是否尝试使用Apache Commons Codec库?如果是这样,您需要导入org.apache.commons.codec.binary.Base64
并确保相应的jar文件位于类路径中。
(另一方面,我希望您的真正的代码记录实际已经读取了多少字节,而不是编码整个缓冲区。您还应该在{{ 1}}阻塞,并采用一种更强大的方法来处理异常。)
答案 1 :(得分:0)
您尚未导入Base64类。我建议您使用commons-codec。如果您不想添加额外的库,那么JDK会提供一个您可以使用的内部实现(不建议使用,因为这不是可移植的)。