問題: 特定のディレクトリ階層がファイル システムに存在することを確認し、存在しない場合は作成する必要があります。
メソッドがあることは知っていますが、そのメソッドFile.mkdirs()
のjavadocは、指定されたパスを完了するために必要なディレクトリの一部またはすべての作成に失敗する可能性があることを示しています。
これを回避するために、パスを表す文字列を受け取り、それを個々の部分に解析してArrayList<String>
. 2 番目の方法では、各ディレクトリとサブディレクトリが存在することを確認して、ディレクトリを構築します。
問題は、実際のプログラムがループを実行して文字列を個々の部分に分割しようとすると、メモリが不足することです。関数ではないことはわかっています。JUnit テストでは単独で完全に動作し、プログラム自体はあまりメモリを消費しません。この時点では、ディレクトリを設定して「DataBank」クラスに格納しただけです。大したことはなく、一連の文字列を格納するクラスにすぎません。
問題の原因を突き止めたいと思います。コードが停止した時点で有効なさまざまなクラスを返信できます。
ただし、より簡単な解決策は、を使用することFile.mkdirs()
です。File.mkdirs()
ディレクトリを作成しない原因は何ですか? 権限が不十分なだけでしょうか?
車輪の再発明を試みるのではなく、できればプロセスを簡素化したい. ただし、同時に、プログラムがメモリ不足になってはならないこともわかっています。文字列を保存してファイル操作を実行していますが、それほど集中的なことはしていません。