程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java控制台輸入輸出詳解

Java控制台輸入輸出詳解

編輯:關於JAVA

初學java時,或許大家都遇到過一個問題,從控制台獲取字符,大家最常見的便是通過System.in.read();取得輸入的字符,代碼如下:

public static void receiveOneChar(){//得到一個輸入的字符
  char ch='2';
     System.out.println("please enter a number:");
     try {
   ch=(char)System.in.read();
  } catch (IOException e) {
   e.printStackTrace();
  }
     System.out.println("your entered char is:"+ch);
  }

但是該方法只能獲得一個輸入的字符,為了獲得更多的輸入字符,或者要實現a,b相加我們該如何實現呢?看下面:

我們知道,java中是以流進行輸入輸入的,其中System類管理基本輸入輸出流和錯誤流,

System.out 將流輸出到缺省位置

System.in 獲得輸入

System.err 輸出錯誤信息

每當main方法被執行時,系統會自動生成上述三各對象;

基本輸入流InputStream是個抽象類,它有如下方法供子類繼承:

read(); 從流中讀入數據;

skip();跳過流中若干各字節;

available();返回流中可用字節數;

mark();在流中標記一個位置;

reset();返回標記的位置;

markSupport();是否支持標記和復位操作;

close();關閉流;

其中,read()方法有三個版本;

int read();讀一個整數;

int read(byte[] b);讀多個字節到一個字節數組;

int read(byte[] b,int off,int len);從字節數組的某各位置讀取len長度的字節;

下面的程序利用int read(byte[] b);實現從控制台讀取多個字符;

public static void  receiveSomeChar(){//通過字節數組得到輸入
  byte btArray[]=new byte[128];
  System.out.println("please Enter something:");
  try {
   System.in.read(btArray);
  } catch (IOException e) {
   e.printStackTrace();
  }
  System.out.println("your entering is:"+new String(btArray));//由字節數組構造String
 }

下面通過BufferedReader,InputStreamReader來獲得控制台輸入;

public static void receiveSomeCharByBufferedReader(){
     System.out.println("please Enter something:");
  InputStreamReader in=null;
  BufferedReader br=null;
  in=new InputStreamReader(System.in);//該處的System.in是各InputSream類型的;
  br=new BufferedReader(in);
  String str="";
  try {
   str = br.readLine();//從輸入流in中讀入一行,並將讀取的值賦值給字符串變量str
  } catch (IOException e) {
   e.printStackTrace();
  }
  System.out.println("your Entered is :"+str);
    }

好了,有了上面的基礎,我們來實現c語言中常見的輸入兩個整數,輸出兩者的和的問題,也就是上面說的a+b的問題;

且看下面的代碼:

public static void twoIntAdd(){
     int one=0;
  int two=0;
  String temp=null;
  System.out.println("please enter the first integer:");
  try {
   BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
   temp=br1.readLine();
   one=Integer.parseInt(temp);
   System.out.println("please enter the second integer:");
   BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));
   temp=br2.readLine();
   two=Integer.parseInt(temp);
   } catch (IOException e) {
   e.printStackTrace();
  }
   System.out.println(one+"+"+two+"="+(one+two));
    }

因為時間關系,沒有對輸入進行驗證,一旦輸入數據類型不對,整個程序將會出錯,細致入微的態度做程序時應該牢記。這裡暫且就不驗證了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved