2016-10-14 12 views
-4

DataOutputStreamの場合、コードを書きました。Java DataOutputStream

しかし、コンソールには私が期待したものが表示されませんでした。

コンソールshow No file givenと、IDと名前の書き込みを2番目のtry{}に表示したいと考えています。

Fileの出力ストリームにトラップしたようです。

...私が間違って何を見つける

ここ
import java.io.*; 
public class DOutPut { 
    public static void main(String args[]) { 
     DataOutputStream dos; 
     FileOutputStream fos; 
     int id = 100; 
     String name = "Tanaka"; 

     if (args.length <= 0) { 
      System.out.println("No file given"); 
      System.exit(1); 
     } 

     try { 
      fos = new FileOutputStream(args[0]); 
      dos = new DataOutputStream(fos); 

      try { 
       dos.writeInt(id); 
       System.out.println("wrote a id: " + id); 
       dos.writeUTF(name); 
       System.out.println("wrote a name: " + name); 
      } catch (IOException e) { 
       // TODO: handle exception 
       System.err.println("IO error"); 
       System.exit(1); 
      } finally { 
       fos.close(); 
       dos.close(); 
      } 
     } catch (IOException e) { 
      // TODO: handle exception 
      System.err.println("Opening/Closing error"); 
      System.exit(1); 
     } 
    } 

} 

を助けてください、私は解決策を見つけました。私の質問に答えてくれた皆様に感謝します。

引数を指定して実行する必要があります。コードfos = new FileOutputStream(args[0])には引数が必要です。

EclipseでJavaコードを記述しています。実行時設定を使用できます。

+2

コンソールには何が表示され、何を期待しましたか? – immibis

+1

コンソールに「ファイルがありません」と表示されます。確かにあなたはそれが何を意味するか知っていなければなりません。 – immibis

+0

@immibis私はまだそれを取得していません... argsの長さが0よりも短い場合は、ファイルが存在しないことを意味しますので、 'no file given'を出力します。しかし、私の期待は' :100、名前を書いた:Tanaka' ... –

答えて

0

Javaプログラムに引数を指定しませんでした。

java -? 
Usage: java [-options] class [args...] 
      (to execute a class) 
    or java [-options] -jar jarfile [args...] 
      (to execute a jar file) 
e.g. 
java DOutPut C:\MyFolder\MyFile.txt 
+0

ありがとう、私は引数で実行する必要があります –

関連する問題