2011-01-25 22 views
2
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(); 
} 
} 



} 
+0

はこれの正確な複製のようになります。http://stackoverflow.com/questions/4790826/non-static-method-encodebyte-cannot-be-referenced-from-a-static-contextでもクラス使用は同じです。 –

+0

これまでのところ、登録されていない6つのアカウントを作成できました。私はそれらを(この1つに)統合しました(http://stackoverflow.com/users/587133/monika)。アカウントを登録してください(あなたは6つの質問をしています)、それにFLAGしてください。あなたがフラグを立てたら、Otherを選択し、あなたの登録したアカウントにあなたのアカウントをマージするよう依頼してください。 – Will

答えて

9

ような何かをしなければならないことは代わりにBase64.encodeBase64()を試してみてください。

+0

確かに良いアイデアです。 +1 –

3

新しいBase64オブジェクトを作成し、オブジェクトにencodeを呼び出す必要があります。メソッドは静的ではないため、そのクラスを囲むクラスのインスタンスからのみ呼び出すことができます。

Base64 b = new Base64(); 
sb.append(b.encode(buf)); 
+0

あなたの答えをありがとう、私はそれを試してみましたが、再びそれはエラーをスローします。 – monika

+0

@monikaちょうど返されるnullを返します。あなたの行の前に} catch(Exception e) – david99world

+0

@david実際にはreturnはtry/catchブロックの外になければなりません。 – Catchwa

関連する問題