• ベストアンサー

Fileクラス

lawsonの回答

  • lawson
  • ベストアンサー率44% (29/65)
回答No.2

解決方法としては No1さんが示してくれていますが。 結局、Fileクラスのコンストラクタは 実行時に唯一1つのファイルまたは、ディレクトリ が特定できなければ nullを返却するのじゃないでしょうか? File d = new File(".\\*.java"); は 以下に示す2つの理由のどちらかで nullを返却して そのnullに対して、listメソッドを 発行しようとした結果 java.lang.NullPointerException になったかもしれません。 理由1 「*.java」という名前を持つファイルが存在しない とおもわれてしまった。 理由2 *.javaの意味自体は解釈したが、 それでは1つのファイルまたは、ディレクトリ に特定できないと判断されてしまった。 以上

azicyan
質問者

お礼

ありがとうございました。 一度締め切ります。 わからなかったらまた質問させてください_(._.)_

関連するQ&A

  • java.io.Fileクラスは絶対パス長をチェックしないのですか?

    windows XP+Eclipse3.3+JDK1.5.0_15上でjava.io.Fileクラスを使ってテキストファイルの入出力を行うJavaプログラムを作成しました。 しかし、これによって、パス長が長すぎて(フルパスで300文字)アクセスできないファイルが作成されてしまいました。 (正確には、Windowsのファイルエクスプローラーに存在は表示されているけど、開けないし、削除も、ドラッグアンドドロップもできないという状態。このファイルの右クリックメニューの項目は「開く」と「送る」の2つしかありませんでした。) StreamReader・WriterもIOExceptionを返していませんでした。 Fileクラスは読み書きするにあたってパス長のチェックをしていないのでしょうか? ちなみに、フルパス長259文字のテキストファイル(数行の文字列を記入してある)を入力に与えたとき、空ファイルのように扱われていました。 このファイルをメモ帳で開こうとすると「パス長が長すぎる」というエラーが出て中身が読み取れませんでした。 以下にソース(例外処理を省略)を抜粋します。 ---------------- File inputFile = new File(args[i]); if (!inputFile.isFile() || !inputFile.canRead()) { // ファイルを読む inputStream = new FileInputStream(inputFile); InputStreamReader inputStreamReader = new InputStreamReader( inputStream, "UTF-8"); bufferReader = new BufferedReader(inputStreamReader);   (以下、読み出し処理) // 入力ファイルと同じ階層に「Result」ディレクトリを作る File resultDir = new File(resultDirPath); resultDir.mkdir(); // 読み取った1行の末尾に"a"を付加したものをファイルに書き込み、 // 「Result」ディレクトリに出力。 // ファイル名は「output_(入力テキストファイル名)」とする File outputFile = new File(resultDir.getOutputDirPath(), outputFileName); outputFile.createNewFile(); outputStream = new FileOutputStream(outputFile); outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8"); bufferedWriter = new BufferedWriter(outputStreamWriter);   (以下、書き込み処理) } ---------------- 以上、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 「java.lang.NullPointerException」というエラー

    アプレットを作っているのですが、コマンドプロンプトからappletviewerで実行すると、うまく動くのに、ブラウザでhtmlに貼って動かそうとすると java.lang.NullPointerException というエラーが出て、動いてくれません…。 エラーが出ている部分は、 File[] imagelist; File image = new File("imagesyukusyo");//imagesyukusyoはディレクトリの名前。 imagelist = image.listFiles() int yousosu; yousosu = imagelist.length;//ここでエラーが出ている という部分です。アプレットとhtmlファイルと同じディレクトリにimagesyukusyoフォルダがあって、そのフォルダの中に、いくつか画像ファイルが入っています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • コマンドライン引数のワイルドカード指定

    以下のように、Javaで作成したプログラムを起動するとします。 >java sample *.java このとき、カレントディレクトリの拡張子が".java"というファイル N個をmain関数の引数に渡すようなことは可能でしょうか? わかりにくい質問で申し訳ありません。

    • ベストアンサー
    • Java
  • Javaでカレントディレクトリを移動するには?

    Javaの中で、カレントなディレクトリを移動させ、相対PATHで既存ディレクトリを認識させたいのですが、期待する結果が得られません。 Javaの中でカレントディレクトリを移動する場合、System.setProperty()メソッドを利用して、"user.dir"を書き換えれば良いと思ったのですが、間違いでしょうか? 間違いである場合、Javaの中ディレクトリを移動させる方法はあるのでしょうか? 以下のプログラムは、下記状況下にて実行したものです。 C:\Java |-app ←プログラムを実行時にいるフォルダ |-sub ←相対PATHで認識させたい既存フォルダ ----------- ソース -------------------------- import java.io.*; class TestTest { public static void main(String args[]) { System.out.println("Current dir : " + System.getProperty("user.dir")); System.out.println("Move Dir !"); System.setProperty("user.dir","C:\\Java"); System.out.println("Current dir : " + System.getProperty("user.dir")); File f = new File("sub"); System.out.println("Dir existance : " + f.exists()); } } --------------------------------------------- ----------------実行結果---------------------- C:\Java\app>java TestTest Current dir : C:\Java\app Move Dir ! Current dir : C:\Java Dir existance : false ←trueにならない! --------------------------------------------

    • ベストアンサー
    • Java
  • Javaのクラス作成について。

    現在、Javaで新規クラスを作成しています。 「String型の変数を受け取ってトリミングしてString型で返す」と言うプログラムを作成したいのですが、なかなかうまくいきません。 現在、考えているのは --- Trimming.java --- public class Trimming{ String new_id; public String TrimmingId(String id){ id = new_id; String idtrim = new_id.trim(); idtrim = id; return id; } } --- Test.java --- class Test{ public static void main(String[] args) { String id = " Trimming "; Trimming ID = new Trimming(); System.out.println(ID.TrimmingId(id)); } } --- 現在、出ているエラーは Exception in thread "main" java.lang.NullPointerException at Trimming.TrimmingId(Trimming.java:6) at Test2.main(Test2.java:6) です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • NullPointerExceptionが出てしまいます

    NullPointerExceptionが出てしまいます アプレットでブロック崩しを作っているのですが、appletviewerで実行したところ、 java.lang.NullPointerException     at ファイル名.run(ファイル名.java;366) at java.lang.Thread.run(Thread.java;534) と表示され、ブロック崩しが動きません。 エラーの出ている部分は、 //あたり判定 if(a>=x-20&&a<=x+80&&b>=y-15&&b<=y+10);{ flag02=false; score=seikou+1; mySound02.play(); } のmySoundの部分です。 このコードはランクラスの中に入れています。 MySoundを消すと動きますが変な動きになってしまいます。 説明下手ですが、教えてくださるとうれしいです。

    • ベストアンサー
    • Java
  • javaでscalaのクラスを使う

     Scala初心者です^^  Scalaで作ったクラスをJavaで使おうとしています.  しかしなかなかうまくいかなくて…  ソースを下に書いておきます. [ap/hello.scala] class hello(str2: String){ val str = str2 def say(){ println(str) } } [ap/start.java] public class start{ public static void main(String[] args){ hello h = new hello("Hello!"); h.say(); } }  helloクラスのコンストラクタを用いて指定した文字列を helloクラスのsayメソッドで標準出力するだけの簡単なクラスなのですが, うまく実行できず… Exception in thread "main" java.lang.NoClassDefFoundError: ap/start/class Caused by: java.lang.ClassNotFoundException: ap.start.class at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Kazus-MackBookPro:ScalaLearning macuser$ java ap/start Exception in thread "main" java.lang.NoClassDefFoundError: ap/start (wrong name: start) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) というエラーが出てしまいます.    どこが悪いかわかる方いらっしゃいませんか?  それとも,JavaではScalaで作った.classファイルは使うことができないのでしょうか?  Scalaはまだ覚えて2週間なので,まだ完全に理解できていません><    よろしくお願いします

  • ディレクトリ内の名前を取得する方法

    ~/WEB-INF/Sample/ に複数ディレクトリが入っていて、そのディレクトリ名をまとめて一つのtxtにファイルに書き込みたいのですが、複数ディレクトリ名を取る方法がわかりません。 コマンドで言うとdir /s >>list.txt のようなことをJAVAでしたいのです。 File directory = new File(getServletContext().getRealPath("/WEB-INF/Sample/")); out.print(directory.getName()); とすると、Sampleというディレクトリ名しか取ることが出来ません。どうしたら、Sampleの中の複数のディレクトリ名を取得できるのでしょう? わかる方よろしくお願いします。

    • ベストアンサー
    • Java
  • 特定ディレクトリのみ、特定拡張子のファイルを表示したくない

    表題の通りなのですが、特定ディレクトリ内にある特定拡張子のファイルのみを非表示にしたいのです。 例えば、[ file.xyz ]と言う拡張子のファイルがあったとします。それをそれぞれ[ c:\abc ][ d:\def ]と言う ディレクトリに格納し、後者のディレクトリに入った場合のみ非表示(隠し属性)とする方法はあるのでしょ うか? c:\abc\file.xyz ← 表示 d:\def\file.xyz ← 非表示(隠し属性) OSはWindows XP SP3となります。 ご存知の方、ご教示頂きたいと思います。

  • Javaの環境について

    以前は普通に動いていたのですが、久しぶりに実行したら Exception int thread "main" java.lang.NoClassDefFoundError:ファイル名 というエラーがでるようになりました。 サイトで調べてみたら 『実行しようとしたclassのclassファイルが見つからないことを示しています。カレント・ディレクトリにちゃんと存在しているかどうかを確かめてください。』 という答えが書いてありました。 しかし、ちゃんと存在していますし、classファイルjavaファイルともに同じファイル名にしています。 おわかりになる方いらっしゃいましたら教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java