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