2011-01-28 5 views
3

ファイルをhttpサーバにアップロードしようとしていますが、まずこれをbase64形式にエンコードする必要があります。それ、どうやったら出来るの?私はfileconnectionを開いているが、私はファイルをエンコードする方法を知らない。Base64形式のファイルをエンコードする - Blackberry/J2ME

+0

[Eclipseを使ってバイト配列をbase64に変換する](http://stackoverflow.com/questions/3753629/convert-a-by64-for-blackberry-using-eclipse) ) –

答えて

-3

あなたはJavaでこれをやっている場合は、BASE64Encoderを使用して、新しいエンコードされたファイルに書き込むことができます。

import sun.misc.BASE64Encoder; 

    public static void main(String[] args) throws Exception { 

     File inputFile = new File(yourUnencodedFile); 
     File outputFile = new File(yourEncodedFile); 

     BASE64Encoder encoder = new BASE64Encoder(); 
     encoder.encode(
      new FileInputStream(inputFile), 
      new FileOutputStream(outputFile) 
     ); 

とBlackBerryは、J2ME環境であるので、そしてちょうど符号化された出力ファイル

+3

残念ながら、そのクラスはJ2MEで利用できません –

+2

そのクラスはJava SE標準の一部ではなく、それを使用すると、異なるJava SE実装間でもアプリケーションを移植不可能にします(そのコードをOpenJDKで実行してみてください)。また、Java SE以外のJVM(Java MEやBlackberry)では、アクセス権がありません。 –

+1

はい私は非常に申し訳ありませんOP、私はJavaのタグを見て、私の上に答え、何らかの理由でそれがJavaで行われていた(それ以上の深夜は私の答え)。 @Joachimありがとう、私は実際に太陽のパッケージが公開インタフェースhttp://java.sun.com/products/jdk/faq/faq-sun-packages.htmlでサポートされていなかったことを知らなかったので、教えてくれてありがとう私のこと – Mike

3

を使用sun.misc.BASE64Encoderのような通常のJ2SEクラスは使用できませんが、同じ目的を果たすネイティブのBase64OutputStreamクラスがあります。詳細については、javadocsを参照してください。

+1

'sun.misc.BASE64Encoder'は**普通のJ2SEクラスではありません**! –

+0

@Joachim Sauerこれは、BlackBerryや他のjava-meデバイスでは利用できないという事実は変わりません。マークは彼の答えをマイクと対比している。 –

+0

yes、picky picky :) –

3

base64形式のエンコーディングについては、このjava-me Base64クラスを参照してください。

その他の例については、kodersまたはJavaとMEブログ記事:Base64 encode-decode in JavaMeを参照してください。

+2

BlackBerryには特に、サードパーティ製のクラスを使用せずに行うことができるBase64InputStreamおよびBase64OutputStreamクラス(OS 4.6以降)があります。どちらの方法でも動作します。 –

+0

FYIでは、Base64InputStreamクラスとBase64OutputStreamクラスは、3.6.0以降で長期間使用されていました。4.6で追加されたBase64OutputStream(newlineTrigger)の新しいコンストラクタです。 –

関連する問題