Fileを引数として受け取る関数があります。文字列データを関数に渡すために、新しいファイルを作成/書き込みしたくない(ファイルシステムへの書き込みアクセス権がない)。文字列データがファイルに存在しないことを追加する必要があります(そのため、ファイルからデータを読み取ることができません)。
ストリームを使用してFileオブジェクトに「キャスト」できますか?
Fileを引数として受け取る関数があります。文字列データを関数に渡すために、新しいファイルを作成/書き込みしたくない(ファイルシステムへの書き込みアクセス権がない)。文字列データがファイルに存在しないことを追加する必要があります(そのため、ファイルからデータを読み取ることができません)。
ストリームを使用してFileオブジェクトに「キャスト」できますか?
回答:
通常、メソッドがファイルを受け入れる場合、近くにストリームを受け入れる別のメソッドがあります。そうでない場合、APIのコードは正しくありません。それ以外の場合は、一時ファイルを使用できますが、多くの場合、アクセス許可は通常付与されます。アプレットの場合は、書き込み権限をリクエストできます。
例:
try {
// Create temp file.
File temp = File.createTempFile("pattern", ".suffix");
// Delete temp file when program exits.
temp.deleteOnExit();
// Write to temp file
BufferedWriter out = new BufferedWriter(new FileWriter(temp));
out.write("aString");
out.close();
} catch (IOException e) {
}
Java のFileオブジェクトは、ファイル自体ではなく、ディレクトリまたはファイルへのパスの表現です。File
オブジェクトを作成するためにファイルシステムへの書き込みアクセス権を持っている必要はありません。実際にファイルに書き込むつもりである場合にのみ必要です(たとえば、FileOutputStreamを使用)。
File
オブジェクトを取るコードをリンク/投稿できますか?答えが述べたように、File
オブジェクトはファイルシステム内の場所への参照のようなものであり、実際のファイルなしでシミュレーションするのは難しいでしょう。ただし、関数がFileReader
またはをとった場合、FileInputStream
ファイル以外の入力を受け入れるようにコードを簡単に変更できます。