2016-10-14 9 views
-4

DataOutputStream 인 경우 코드를 작성했습니다.Java DataOutputStream

하지만 콘솔에 예상 한 내용이 표시되지 않았습니다.

콘솔 show No file given 및 두 번째 try{}에 ID 및 이름 쓰기를 인쇄하고 싶습니다.

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'을 출력한다.하지만 내 기대는'id를 썼다. : 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

고맙습니다. 인수로 실행해야합니다. –