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

Java中流的概念

編輯:關於JAVA

有人問了我個關於Java流的問題,在解答完後很有感觸,我認為可能所有新手都可能有這樣的問題,所以總結一下發出來,呵呵.供大家參考:

  其實我也沒太聽明白什麼意思,因為他表達不請,但有一點我是明確的,就是他要從鍵盤輸入數(控制台的那種),然後計算出長方形的面積. 類似這個問題.呵呵,其實這個問題很簡單,在C++裡只需cin就ok了,但在Java裡,不是那麼簡單,他本來用System.in.read();但這個函數獨進後返回的是int形,但實際上是ASCII碼,比如輸入1,那麼返回的是51(記不清1的ASC碼了),而不是1,當然你可以給他轉換成 char但char有轉不了int,呵呵,總之很麻煩,俺也說不清,所以就換了一種方法.所以我換了一種方法,該方法如下,我想大概有不少新人都不太會, 所以給出源碼如下:

以下是代碼片段:
package test; 

import Java.io.BufferedReader; 
import Java.io.IOException; 
import Java.io.InputStreamReader; 

public class TestInOut { 

 /** 
 * @param args 
 */ 
 public static void main(String[] args) { 
  // TODO 自動生成方法存根 
  Test test=new Test(); 
  BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); 
  System.out.print("請輸入長方形的長:"); 
  try { 
   test.setA(Float.parseFloat(stdin.readLine())); 
   System.out.print("請輸入長方形的寬:"); 
   test.setB(Float.parseFloat(stdin.readLine())); 
   test.setArea(); 
   System.out.print("該長方形的面積是:"); 
   System.out.println(test.getArea()); 
  } catch (IOException e) { 
   // TODO 自動生成 catch 塊 
   e.printStackTrace(); 
  } 
 } 


class Test{ 
 private float a; 
 private float b; 

 public float getB() { 
  return b; 
 } 
 public void setB(float b) { 
  this.b = b; 
 } 
 public void setA(float a){ 
  this.a=a; 
 } 
 public float getA(){ 
  return a; 
 } 

 private float area; 
 public float getArea() { 
  return area; 
 } 
 public void setArea() { 
  area=a*b; 
 } 
}
  執行結果:

   請輸入長方形的長:3
   請輸入長方形的寬:4
   該長方形的面積是:12.0

  這裡面的 BufferedReader便是個流了,呵呵,所以我就順便把流的東西總結了一下,請看下面代碼:

以下是代碼片段:
package test; 
import Java.io.*; 
public class iOStreamDemo { 
 public void samples() throws IOException { 
  // 1. 這是從鍵盤讀入一行數據,返回的是一個字符串 
  BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); 
  System.out.print("Enter a line:"); 
  System.out.println(stdin.readLine()); 

  // 2. 這是從文件中逐行讀入數據 

  BufferedReader in = new BufferedReader(new FileReader("iOStreamDemo.Java")); 
  String s, 
  s2 = new String(); 
  while ((s = in.readLine()) != null) 
   s2 += s + "n"; 
   in.close(); 

   // 3. 這是從一個字符串中逐個讀入字節 
   StringReader in1 = new StringReader(s2); 
   int c; 
   while ((c = in1.read()) != -1) 
    System.out.print((char) c); 

    // 4. 這是將一個字符串寫入文件 
    try { 
     BufferedReader in2 = new BufferedReader(new StringReader(s2)); 
     PrintWriter out1 = new PrintWriter(new BufferedWriter( 
new FileWriter("IODemo.out"))); 
     int lineCount = 1; 
     while ((s = in2.readLine()) != null) 
      out1.println(lineCount++ + ": " + s); 
      out1.close(); 
    } catch (EOFException e) { 
     System.err.println("End of stream"); 
    } 
   } 
}
  我想看了上面的代碼,大家應該對流有了一個簡單的認識,會用它從鍵盤讀數據了.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved