package com.cordys.report;
import java.io.FileInputStream;
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
答えて
0
あなたはBase64クラスをインポートしていません。これにはcommons-codecを使用することをお勧めします。ライブラリを追加したくない場合、JDKには内部実装が付属しています(ポータブルではないので推奨しません)。
+0
私はrequred jarファイルを追加しましたが、次のようにエラーをスローします:非静的メソッドencode(byte [])は静的コンテンツから参照できません – monika
1
これは、コンパイラがBase64という名前のクラスの場所を知らないことを意味します。 (私は変数であることを意味していますことを疑う。)ステップ:
- あなたはそれをインポートしていないので、コンパイラは現在だけのjava.langとcom.cordys.report
- あなたに探していますクラスがクラスパス上にあることを確認する必要があります。そうすれば、コンパイラが見つけることができます。 Base64クラスはどこで見つかるはずですか?
Apache Commons Codecライブラリを使用しようとしていますか?その場合は、org.apache.commons.codec.binary.Base64
のインポートが必要で、適切なjarファイルがクラスパスにあることを確認してください。
(側の問題として、私はあなたの本当コードを願って、むしろ関係なく、バッファ全体をコードするよりも、実際に読み込まれたバイト数のノートを取る。あなたはまた、finally
ブロック内のファイルを閉じて、取るべき例外を処理するにはかなり堅牢なアプローチです)。
関連する問題
- 1. エラー:シンボルを見つけることができません。シンボル:変数keyBoard
- 2. Androidスタジオ:Gradle:エラー:シンボル変数を見つけることができません
- 3. Javaエラー:「シンボルを見つけることができません」ロケーション変数
- 4. "シンボル変数VK_NEXTを見つけることができません"
- 5. Javaはシンボルを見つけることができません、Javaは配列内のシンボルを見つけることができませんか?
- 6. Lucene:シンボルを見つけることができません
- 7. OrientDB:シンボルOGraphDatabaseを見つけることができません
- 8. 「シンボルを見つけることができません。変数の入力」というエラーここ
- 9. ローカル変数を見つけることができません
- 10. ReferenceError:変数を見つけることができません:$
- 11. ReferenceError:変数を見つけることができません:$
- 12. 変数を見つけることができません:Store
- 13. Android:NullPointerExceptionの理由を見つけることができません
- 14. はisLowerCaseでシンボルを見つけることができません
- 15. Javaエラー:シンボルを見つけることができませんか?
- 16. "変数変数BufferUtilsを見つけることができません"
- 17. EclipseビルドがMavenライブラリを見つけることができない理由はありますか
- 18. Javaはループ、論理問題のシンボルを見つけることができませんか?
- 19. Javaがシンボルを見つけることができません:コンストラクタエラー
- 20. Java:シンボルを見つけることができない - メソッドを継承する
- 21. gccとstd = c99でコンパイルするときにgetaddrinfoを見つけることができない理由
- 22. JCFライブラリとは何ですか、どこでドキュメンテーションを見つけることができますか?
- 23. JTableへのResultSet - シンボルを見つけることができません
- 24. エラー:シンボルを見つけることができません:メソッドstartActivity
- 25. 別のクラスファイルのシンボルを見つけることができません
- 26. java - シンボルを見つけることができません - クラスArraylist
- 27. TimeZoneDisplayNameでTimeZoneByIdを見つけることができますか?
- 28. PHPでGET変数が見つからない理由を見つけるには
- 29. どこでMicrosoft.Build.Utilities.v3.5を見つけることができます
- 30. Java ActionListenerクラスで変数を見つけることができません。
1.なぜ別の行にエンコードしようとしていますか?塩の価値があるすべてのBase64エンコーダは、適切なサイズのチャンクをフィードせずに複数行の結果を生成できる必要があります。 2.)**例外メッセージを返すことは例外的に対処するには非常に悪い方法です。呼び出し元が非常に短いファイルからエラー状態を区別する方法はありません。 3.) 'filePath'引数を無視します。おそらくあなたがやりたいことではありません。 –