可以找到符号变量Base64是什么原因?

时间:2011-01-24 06:58:43

标签: java

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

}


}

2 个答案:

答案 0 :(得分:1)

嗯,这意味着编译器不知道在哪里可以找到名为Base64的类。 (我怀疑它是一个变量。)步骤:

  • 你还没有导入它,所以编译器目前只查看java.lang和com.cordys.report
  • 您还需要确保该类在类路径上,以便编译器可以找到它。您希望在哪里找到Base64类?

您是否尝试使用Apache Commons Codec库?如果是这样,您需要导入org.apache.commons.codec.binary.Base64并确保相应的jar文件位于类路径中。

(另一方面,我希望您的真正的代码记录实际已经读取了多少字节,而不是编码整个缓冲区。您还应该在{{ 1}}阻塞,并采用一种更强大的方法来处理异常。)

答案 1 :(得分:0)

您尚未导入Base64类。我建议您使用commons-codec。如果您不想添加额外的库,那么JDK会提供一个您可以使用的内部实现(不建议使用,因为这不是可移植的)。