2011-12-19 2 views
29

내가 자바 초보자이고 내가Java에서 readline() 메서드를 사용하는 방법?

import java.io.DataInputStream 
class Reading 
{ 
    public static void main(String args[]) 
    { 
     DataInputStream in = new DataInputStream(System.in); 
     int intnumber=0; 
     float floatnumber=0.0f; 
     try { 
      system.out.println("enter an integer: "); 
      intnumber = Integer.parseInt(in.readline()); 

      system.out.println("enter a float number: "); 
      floatnumber = Float.valueOf(in.readline()).floatvalue(); 
     } 

     //rest of code 

나는 다음과 같은 질문을 할 다음과 같다 readLine() 키보드에서 방법과 책에 주어진에 대한 프로그램을 통해 변수 값을주는 항목을 읽고 있었다 : 다음 문

DataInputStream in = new DataInputStream(System.in);

에서 이루어집니다 무엇

  1. inDataInputStream의 개체 인 경우 새로운 기능 및 위의 문의 오른쪽에있는 문구는 무엇을 수행합니까? 다른 방법이 floatnumber에 intnumber 및 부동 소수점 값으로

답변

55

DataInputStream 대신 Scanner으로 보내주십시오. Scanner은 이러한 목적으로 특별히 설계되었으며 Java 5에서 도입되었습니다. Scanner을 사용하는 방법은 다음 링크를 참조하십시오.

Scanner s = new Scanner(System.in); 
System.out.println(s.nextInt()); 
System.out.println(s.nextInt()); 
System.out.println(s.next()); 
System.out.println(s.next()); 
24

사용의 BufferedReader와 InputStreamReader 클래스를 정수 값 을 넣어 사용되어왔다 왜

  • .

    BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in)); 
    String line=buffer.readLine(); 
    

    또는 java.util.Scanner 클래스 메소드를 사용하십시오.

    Scanner scan=new Scanner(System.in); 
    
  • 3

    요약 : 나는 당신이 어떤 코드를 복사했는지에 관해서주의를 기울였다. 잘 선택된 코드보다는 작동하는 코드를 복사하는 것이 가능합니다.

    intnumber에서 parseInt가 사용되고 float 숫자 valueOf가 사용됩니다. 왜 그렇습니까?

    의심스러운 API 사용의 일관성없는 이유가 있습니다.


    Java는 대소 문자를 구분하며, Readline() 메서드는 없습니다. 아마도 당신은 readLine()을 의미 할 것입니다.

    DataInputStream.readLine() 대신 BufferedReader.readLine()을 사용합니다.

    그러나 귀하의 경우에는 스캐너 클래스를 사용합니다.

    Scanner sc = new Scanner(System.in); 
    int intNum = sc.nextInt(); 
    float floatNum = sc.nextFloat(); 
    

    당신은

    http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

    6

    DataInputStreamInputStream 이상 단지 장식하는 클래스 난 당신이 자바 독에 잠깐 봐 제안 무엇 (어떤 System.in한다) 알고 싶은 경우에 어떤 보다 편리한 방법을 사용하여 읽을 수 있습니다.

    Float.valueOf()에 대해서는 글쎄, Float.parseFloat()이기 때문에 궁금합니다. 이 코드는 Float.valueOf()으로 잡고 .floatValue()을 사용하는 float 원시 타입으로 바뀌며 자동 언 박싱으로 인해 Java 1.5+에서는 불필요합니다.

    그리고 다른 답변은 바르게 말하지만,이 방법은 더 이상 사용되지 않습니다.

    1
    //this will explain you i think.... 
    
    import java.io.*; 
    class reading 
    { 
        public static void main(String args[]) throws IOException 
        { 
         float number; 
         System.out.println("enter a number"); 
         try 
         { 
          InputStreamReader in=new InputStreamReader(System.in); 
          BufferedReader br=new BufferedReader(in); 
          String a=br.readLine(); 
          number=Float.valueOf(a); 
          int x=(int)number; 
    
          System.out.println("your input="+number); 
          System.out.println("your input in intiger terms is ="+x); 
         } 
         catch(Exception e){} 
    
        } 
    } 
    
    관련 문제