歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java從控制台讀入數據的幾種方法

這裡記錄Java中從控制台讀入信息的幾種方式,已備後查!

(1)JDK 1.4(JDK 1.5和JDK 1.6也都兼容這種方法)

 
  1. public class TestConsole1 {  
  2.     public static void main(String[] args) {  
  3.         String str = readDataFromConsole("Please input string:);  
  4.         System.out.println("The information from console: + str);  
  5.     }  
  6.   
  7.     /** 
  8.      * Use InputStreamReader and System.in to read data from console 
  9.      *  
  10.      * @param prompt 
  11.      *             
  12.      * @return input string 
  13.      */  
  14.     private static String readDataFromConsole(String prompt) {  
  15.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
  16.         String str = null;  
  17.         try {  
  18.             System.out.print(prompt);  
  19.             str = br.readLine();  
  20.   
  21.         } catch (IOException e) {  
  22.             e.printStackTrace();  
  23.         }  
  24.         return str;  
  25.     }  
  26. }  


 

(2)JDK 1.5(利用Scanner進行讀取)

 
  1. public class TestConsole2 {  
  2.     public static void main(String[] args) {  
  3.         String str = readDataFromConsole("Please input string:");  
  4.         System.out.println("The information from console:" + str);  
  5.     }  
  6.   
  7.     /** 
  8.      * Use  java.util.Scanner to read data from console 
  9.      *  
  10.      * @param prompt 
  11.      *  
  12.      * @return input string 
  13.      */  
  14.     private static String readDataFromConsole(String prompt) {  
  15.         Scanner scanner = new Scanner(System.in);  
  16.         System.out.print(prompt);  
  17.         return scanner.nextLine();  
  18.     }  
  19. }  


 
Scanner還可以很方便的掃描文件,讀取裡面的信息並轉換成你要的類型,比如對“2 2.2 3.3 3.33 4.5 done”這樣的數據求和,見如下代碼:
 
  
  1. public class TestConsole4 {  
  2.   
  3.     public static void main(String[] args) throws IOException {  
  4.         FileWriter fw = new FileWriter("num.txt");  
  5.         fw.write("2 2.2 3.3 3.33 4.5 done");  
  6.         fw.close();  
  7.   
  8.         System.out.println("Sum is "+scanFileForSum("num.txt"));  
  9.     }  
  10.   
  11.     public static double scanFileForSum(String fileName) throws IOException {  
  12.         double sum = 0.0;  
  13.         FileReader fr = null;  
  14.         try {  
  15.             fr = new FileReader(fileName);  
  16.             Scanner scanner = new Scanner(fr);  
  17.               
  18.             while (scanner.hasNext()) {  
  19.                 if (scanner.hasNextDouble()) {  
  20.                     sum = sum + scanner.nextDouble();  
  21.   
  22.                 } else {  
  23.                     String str = scanner.next();  
  24.   
  25.                     if (str.equals("done")) {  
  26.                         break;  
  27.                     } else {  
  28.                         throw new RuntimeException("File Format is wrong!");  
  29.                     }  
  30.   
  31.                 }  
  32.             }  
  33.   
  34.         } catch (FileNotFoundException e) {  
  35.             throw new RuntimeException("File " + fileName + " not found!");  
  36.         } finally {  
  37.             if (fr != null)  
  38.                 fr.close();  
  39.         }  
  40.         return sum;  
  41.     }  
  42. }  
Copyright © Linux教程網 All Rights Reserved