无法从静态上下文引用非静态方法编码(字节[]) package com.cordys.report; 导入java.io.FileInputStream; 导入org.apache.commons.codec.binary.Base64; 公共类编码{ 公共静态字符串encodeFileStream(字符串文件路径)//文件路径ex:C:\Program Files\Cordys\Web\reports\I0001180.pdf { 试一试{ FileInputStream fin=新的FileInputStream(“E:/CSS文档/Test.pdf”); StringBuffer sb=新的StringBuffer(); int lineLength=72; byte[]buf=新字节[lineLength/4*3]; while(true){ int len=最终读数(buf); 如果(len
Method无法从静态上下文引用非静态方法编码(字节[]) package com.cordys.report; 导入java.io.FileInputStream; 导入org.apache.commons.codec.binary.Base64; 公共类编码{ 公共静态字符串encodeFileStream(字符串文件路径)//文件路径ex:C:\Program Files\Cordys\Web\reports\I0001180.pdf { 试一试{ FileInputStream fin=新的FileInputStream(“E:/CSS文档/Test.pdf”); StringBuffer sb=新的StringBuffer(); int lineLength=72; byte[]buf=新字节[lineLength/4*3]; while(true){ int len=最终读数(buf); 如果(len,java,Java,MethodBase64.encode()不是static。您必须创建类Base64的实例,然后调用该方法,即执行类似于newbase64().encode(字节)的操作,如中所示 请尝试Base64.encodeBase64()。您需要创建一个新对象并对该对象调用encode,因为该方法不是静态的,因此只能从其封闭类的实例调用它 package com.cordys.report; import java.io.FileInputStream; import org.apache.com
Base64.encode()
不是static
。您必须创建类Base64
的实例,然后调用该方法,即执行类似于newbase64().encode(字节)
的操作,如中所示
请尝试Base64.encodeBase64()
。您需要创建一个新对象并对该对象调用encode
,因为该方法不是静态的,因此只能从其封闭类的实例调用它
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();
}
}
}
确实是个更好的主意。+1谢谢你的回答,我试过了,但它再次抛出错误缺少return语句。@monika只是把return null;放在你的行之前}catch(异常e)@david事实上,返回应该在try/catch块之外,因为无法保证返回在内部时会到达。看起来像是完全重复的:即使使用的类也是相同的。好的,到目前为止,您已经创建了六个未注册的帐户。我已经合并了它们。请注册一个帐户(你问了六个问题,时间差不多了)然后标记这个问题。当你标记时,选择其他,让我将你的帐户合并到你注册的帐户中。
Base64 b = new Base64();
sb.append(b.encode(buf));