4

Fileオブジェクトを使用してFileInputStreamオブジェクトを初期化しようとしています。私は正規表現を何度も行うために、同じ方法でこのファイルを開いているので、これは奇妙であるライン上FileオブジェクトでFileInputStreamを初期化するときにFileNotFoundExceptionを取得する

fis = new FileInputStream(file); 

をするFileNotFoundエラーを取得しています。

次のように私の方法は次のとおりです。

private BufferedInputStream fileToBIS(File file){ 

    FileInputStream fis = null; 
    BufferedInputStream bis =null; 
    try { 
     fis = new FileInputStream(file); 
     bis = new BufferedInputStream(fis); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return bis; 
} 

java.io.FileNotFoundException:C:\ DEV \サーバー\ tomcat6 \ webappsに\サンプルサイト(アクセスが拒否されました)
       のjavaで.io.FileInputStream.open(ネイティブメソッド)java.io.FileInputStreamで
       。(不明なソース)
    java.io.FileInputStreamで   。(不明なソース)controller.ScanEditRegions.fileToBIS(ScanEditRegions.java:52)で
        controller.ScanEditRegions.tidyHTMLで
       (ScanEditRegions.java:38 controller.ScanEditRegionsで)
      controller.ScanEditRegions.processで (ScanEditRegions.java:64)
       。 visitAllDirsAndFiles controller.Manager.main(Manager.java:10)で(ScanEditRegions.java:148)
       は

+0

ファイルがありますか、許可の問題がありますか? –

答えて

9

ファイルを読む権利がありません。

Fileクラスは、ファイルに関する有益なチェック、それらのいくつかを実行することができます:たとえば

boolean canExecute(); 
boolean canRead(); 
boolean canWrite(); 
boolean exists(); 
boolean isFile(); 
boolean isDirectory(); 

を、あなたがのためにチェックすることができ:存在する()& & ISFILE()& & canRead()とあなたがファイルを読むことができない理由に応じて、より良いエラーメッセージを表示してください。

+0

問題はディレクトリが(多くのファイルと同様に)渡されていたことです – Ankur

+0

同じprobも見つかりましたが、私のエラーは 02-10 14:18:25.367:W/System.err (365):java.io.FileNotFoundException:/storage/emulated/0/bhanuдо_свидания.txt:オープンに失敗しました:ENOENT(そのようなファイルまたはディレクトリはありません) 02-10 14:18:25.367:W/System.err(365) :\t at libcore.io.IoBridge.open(IoBridge.java:409) 02-10 14:18:25.367:W/System.err(365):\t at java.io.FileInputStream。 (FileInputStream.java:78) –

3

これはOSのファイルパーミッションの設定に関係しています。特定のディレクトリへのアクセス権を持たないユーザーとしてJavaプロセスを開始しました。

3

あなたは(おそらく-フードの順で)ことを確認するかもしれません:ファイルが存在

  1. ファイルはディレクトリではありません。
  2. あなたまたはJavaプロセスにファイルを開く権限があります。私はことを推測すると思いますが、自分の投稿に貼り付けられたスタックトレースから判断
  3. (おそらく代わりにFileNotFoundExceptionの標準のIOExceptionを受け取ることになると、おそらく)別のプロセスがファイルをロックしていない
+0

同じprobも見つかりましたが、私のエラーは02-10 14:18:25.367:W/System.err(365):java.io.FileNotFoundException:/storage/emulated/0/bhanuдо_свидания.txt:open failed:ENOENTそのようなファイルやディレクトリはありません)02-10 14:18:25.367:W/System.err(365):libcore.io.IoBridge.open(IoBridge.java:409)02-10 14:18:25.367:W/System.err(365):java.io.FileInputStream。 (FileInputStream.java:78) –

-1

私はあなたがeclipseやjava IDEからステートメントを実行していると思うし、ターゲットファイルもIDEワークスペースにあると思う。 Eclipse cantが同じワークスペース内のターゲットファイルを読み込んでいるときにエラーが発生しています。コマンドプロンプトからコードを実行できます。それは何の例外を通してであってはならない。

+0

元のポスターはすでに回答を受け入れており、問題の根本原因を説明しました。ファイルパスではなくディレクトリパスを渡していました。歴史的な質問に答える前に他の人が書いたことを確認してください。 –

関連する問題