无法看到输出

时间:2011-01-28 04:57:49

标签: java

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();
    }

}
}

2 个答案:

答案 0 :(得分:1)

行后

s=encodeFileStream("E:/CSSDocument/Test.pdf");

添加

System.out.println(s);

请清理你的代码:)

答案 1 :(得分:0)

您看不到任何输出的一个原因是您的程序没有任何输出。 main方法调用encodeFileStream来读取和编码文件,将结果分配给String变量s ...然后退出而不输出它。

添加System.out.println(s);(或类似的东西)输出编码的文件内容。

其他要点:

  • 你的代码很乱。修复空格和缩进。
  • 方法encodeFileStream命名不佳。它正在做的是编码文件的内容......而不是“文件流”的内容。
  • 你的缓冲区长度可能太小...... PDF文件是二进制的,所以“行长”的概念毫无意义。
  • 将路径名硬连接到代码中......可能不是必需的。
  • 您的程序将错误地编码文件的最后一个“缓冲区”(大多数时间)。提示:len可以是0buf.length以外的值。