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();
}
}
}
2
A
回答
4
方法Base64.encode()
不是static
。你必须创建Base64
类的实例,然后调用该方法,即像做new Base64().encode(bytes)
9
截至http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64.html
看出尝试Base64.encodeBase64()
代替。
+0
的确是个好主意。 +1 – 2011-01-25 07:12:39
3
由于该方法不是静态的,因此只能从其封闭类的实例中调用,因此需要创建新的对象并调用encode
。
Base64 b = new Base64();
sb.append(b.encode(buf));
相关问题
- 1. 非静态方法不能从静态上下文中引用?
- 2. 非静态方法不能从静态上下文中引用?
- 3. 非静态方法不能从静态上下文中引用
- 4. 非静态方法不能从静态上下文中引用
- 5. 非静态方法不能从静态上下文中引用
- 6. 非静态方法不能从静态上下文中引用
- 7. 如何从静态上下文中引用非静态方法
- 8. 非静态方法不能从静态上下文中引用
- 9. setDisplayHomeAsUpEnabled()错误:无法从静态上下文中引用非静态方法
- 10. setBackground():无法从静态上下文中引用非静态方法
- 11. 如何修复“无法从静态上下文中引用非静态方法”?
- 12. 非静态方法toString不能从静态上下文引用
- 13. 当静态方法无法从静态上下文中引用非静态方法时,这意味着什么?
- 14. JApplet:无法在静态上下文中引用非静态方法错误
- 15. 非静态字段不能从静态上下文Main方法中引用
- 16. 非静态编辑()不能从静态上下文中引用
- 17. 从字符串打印甚至字符 - 错误非静态方法无法从静态上下文中引用
- 18. Java错误:静态方法无法引用非静态方法
- 19. C#编译器:无法在非静态上下文中访问静态方法
- 20. 无法访问静态上下文中的非静态字段
- 21. 从非静态的上下文调用静态方法
- 22. 从静态上下文中访问非静态方法
- 23. “无法从静态上下文中引用非静态变量”错误
- 24. 非静态变量pRef无法从静态上下文中引用
- 25. 非静态变量角色无法从静态上下文中引用 - JDO Querydsl
- 26. 不能从静态上下文中引用不同类的非静态方法
- 27. 非静态方法compute(int)不能从静态上下文中引用
- 28. 非静态方法getIntExtra(java.lang.String,int)不能从静态上下文中引用吗?
- 29. BlueJ错误:非静态方法(OOPoint)不能从静态上下文中引用
- 30. 如何解决非静态方法不能从静态上下文中引用?
看起来像这样的精确副本:http://stackoverflow.com/questions/4790826/non-static-method-encodebyte-cannot-be-referenced-from-a-static-context连类使用的是相同的。 – 2011-01-27 06:43:21
好吧,到目前为止,您已设法创建六个未注册的帐户。我已经将它们合并在一起(http://stackoverflow.com/users/587133/monika)。请注册一个账户(你已经提出了六个问题,它的时间),然后FLAG这一个。当您举报时,请选择其他,然后让我将您的帐户合并到您的帐户中。 – Will 2011-01-28 13:10:47