FileBackedOutputStream
クラスからGoogle Guava
ライブラリにアクセスし、バッファの種類として使用するのが適切かどうか疑問に思っていました。毎日1回、Webアプリケーションのプロセスで数万行約100文字含む)をFTPサーバー上のファイルにアップロードします。 FileBackedOutputStream
オブジェクトを使用して、これらの文字列をすべて最初に書き込んでから、FileBackedOutputStream.getSupplier().getInput()
を使用してFTPクライアントにアクセスし、InputStream
を返します。これはFileBackedOutputStream
の正しい使用例ですか?FileBackedOutputStreamユースケース(Guava)
2
A
答えて
2
はい、それはFileBackedOutputStream
の許容可能な使用例になると思います。しかし、私はFileBackedOutputStream
が、サイズがかなり異なる可能性のあるデータを使用しているときに最適であると思います...メモリに収めることができる少量のデータに対して、メモリにバッファリングするだけで大量にそれをすべてメモリに読み込もうとすると、OutOfMemoryError
というデータが出力される可能性があります。ファイルへのバッファリングに切り替える必要があります。これはFileBackedOutputStream
が本当に輝いているところだと思います。私はいくつかのことをする必要があるアップロードされたファイルをバッファリングするためにそれを使用しました。
関連する問題
- 1. ユースケースのステップとユースケースのシナリオ
- 2. ユースケース
- 3. Guavaハッシングユースケース
- 4. リソースGuava
- 5. ThreadPool.QueueUserWorkItemユースケース
- 6. ユースケース - ヘルプ
- 7. スプリングプロトタイプスコープ - ユースケース?
- 8. ユースケース図
- 9. @ShallowReferenceユースケース
- 10. Linqユースケース
- 11. ポイント - ユースケース
- 12. Guava Group By Key
- 13. Guavaのビルドファイル
- 14. Guava RateLimiter Bursting
- 15. GuavaとWeblogic:ClassNotFoundException
- 16. キャッシュテーブル - Google Guavaテーブル
- 17. Guava EventBusユニットテスト
- 18. MVVMとiOSユースケース
- 19. ビジネスユースケースとユースケース
- 20. タスクbuildNeededのユースケース?
- 21. Amazon Lambdaユースケース
- 22. Vueコンポーネント$ユースケース
- 23. FacesConverterのユースケース
- 24. ピザアプリのユースケース図
- 25. UMLユースケース図 - ラッフルシステム
- 26. UML:ユースケース図
- 27. Hazelcast Jet - ユースケース
- 28. where句のユースケース
- 29. Springカスタムネームスペース - ユースケース
- 30. Aurelia子ルータ - ユースケース
InputStreamが必要な場合は、ByteArrayOutputStreamとByteArrayInputStreamを使用しないでください。そのシンプルさとより効率的になる可能性があります。 –
これは私が言及したサイズのデータ、すなわち約100文字の長さの数万行(文字列)にも適していますか? –
I/Oリソースを使用するときに重要なスレッドセーフです。試してみてください –