2016-04-14 13 views
-1

hello guys読み取りモードまたは書き込みモードで開くファイル許可を与えたい .extにファイル拡張があり、file_nameにファイル名が含まれています。 f_pは、私が 'r'または 'w'モードとして入力を取得することができます。ここでは、シンボルを見つけることができない私は別の場所ファイルへの読み取り書き込み権限を与えます

で同じファイルを使用しています。しかし、このコードでは、私は としてエラーを取得しています:メソッドsetReadable(ブール値) 場所:fos2がタイプのFileOutputStreamのですが

<%

ここにいくつかのコード

FileInputStream fis2 =新しいFileInputStream( "e:/ profile/epy /" + file_name + "。ext");

 FileOutputStream fos2 = new FileOutputStream("e:/decrypt/"+file_name+"."+ext); 

        if(f_p.equals("R")||f_p.equals("r")) 
        { 
         fos2.setReadable(true); 
        } 
        else if(f_p.equals("W")||f_p.equals("w")) 
        { 
         fos2.setWritable(true); 
        } 

//何らかのコード> https://jsfiddle.net/wc8pccyL/

+1

[Javadocs](https://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html)は、 'FileOutputStream'に.setReadable()がないことを明確に示しています。方法。 Fileオブジェクト、OTOHが行います。だから 'FileOutputStream'ではなく' File'を使って、Javadocと友達になりましょう。 – KevinO

答えて

0

ここ

%は、現在のコードが間違っているクラス(のFileOutputStream)を使用しています。

File f = new File(SOME_PATH); 
if ("r".equalsIgnoreCase(f_p)) { 
    f.setReadable(true); 
    ... 
} 
if ("w".equalsIgnoreCase(f_p)) { 
    f.setWritable(true); 
    ... 
} 

ただし、読み取りアクセスを必要としない書き込みアクセスが必要な場合を想定してください。 OPのコードの前提は、f_pに "R"または "W"という単一の値があり、許可を設定することです。この前提条件は、特にオペレーティングシステム間で慎重に確認する必要があります。 FileOutputStreamは、(実際の出力のために)後に使用しなければならない場合

また、それはFileオブジェクトを取るコンストラクタを有しているので、そのようなシナリオでFileオブジェクトを作成し、その後FileOutputStream fos = new FileOutputStream(f);を作成することによって失われたものはありませんここで 'f'は以前にインスタンス化されたFileオブジェクトです。

+0

ThaNK YOU .... ITが解決しました:-) –

関連する問題