import java.io.FileInputStream;
import org.apache.commons.codec.binary.Base64;
public class Encode
{
public static String encodeFileStream(String filePath) throws Exception //file path ex : C:\Program Files\Cordys\Web\reports\I0001180.pdf
{
StringBuffer sb=new StringBuffer();
try
{
FileInputStream fin = new FileInputStream(filePath);
//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;
}
//new Base64().encode(byte);
//sb.append(Base64.encode(buf));
//sb.append(Base64.encodeBase64(buf));
Base64 b = new Base64();
sb.append(b.encode(buf));
//return sb.toString();
}
}
catch(Exception e)
{
return e.getMessage();
}
return sb.toString();
}
public static void main(String args[]) throws Exception
{
try
{
String s="";
s=encodeFileStream("E:/CSSDocument/Test.pdf");
}
catch(Exception e)
{
e.getMessage();
}
}
}
答案 0 :(得分:1)
s=encodeFileStream("E:/CSSDocument/Test.pdf");
添加
System.out.println(s);
请清理你的代码:)
答案 1 :(得分:0)
您看不到任何输出的一个原因是您的程序没有写任何输出。 main
方法调用encodeFileStream
来读取和编码文件,将结果分配给String变量s
...然后退出而不输出它。
添加System.out.println(s);
(或类似的东西)输出编码的文件内容。
其他要点:
encodeFileStream
命名不佳。它正在做的是编码文件的内容......而不是“文件流”的内容。len
可以是0
和buf.length
以外的值。