深入淺出javase——標準流

/*

* System.in 標準輸入流。是從鍵盤獲取數據的

*

* 鍵盤錄入數據:

* A:main方法的args接收參數。

* java HelloWorld hello world java

* B:Scanner(JDK5以後的)

* Scanner sc = new Scanner(System.in);

* String s = sc.nextLine();

* int x = sc.nextInt()

* C:通過字符緩衝流包裝標準輸入流實現

* BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

*/

public class SystemInDemo {

public static void main(String[] args) throws IOException {

// //獲取標準輸入流

// InputStream is = System.in;

// //我要一次獲取一行行不行呢?

// //行。

// //怎麼實現呢?

// //要想實現,首先你得知道一次讀取一行數據的方法是哪個呢?

// //readLine()

// //而這個方法在哪個類中呢?

// //BufferedReader

// //所以,你這次應該創建BufferedReader的對象,但是底層還是的使用標準輸入流

// // BufferedReader br = new BufferedReader(is);

// //按照我們的推想,現在應該可以了,但是卻報錯了

// //原因是:字符緩衝流只能針對字符流操作,而你現在是字節流,所以不能是用?

// //那麼,我還就想使用了,請大家給我一個解決方案?

// //把字節流轉換為字符流,然後在通過字符緩衝流操作

// InputStreamReader isr = new InputStreamReader(is);

// BufferedReader br= new BufferedReader(isr);

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println("請輸入一個字符串:");

String line = br.readLine();

System.out.println("你輸入的字符串是:" + line);

System.out.println("請輸入一個整數:");

// int i = Integer.parseInt(br.readLine());

line = br.readLine();

int i = Integer.parseInt(line);

System.out.println("你輸入的整數是:" + i);

}

}


/*

* 標準輸入輸出流

* System類中的兩個成員變量:

*public static final InputStream in “標準”輸入流。

* public static final PrintStream out “標準”輸出流。

*

* InputStream is = System.in;

* PrintStream ps = System.out;

*/

public class SystemOutDemo {

public static void main(String[] args) {

// 有這裡的講解我們就知道了,這個輸出語句其本質是IO流操作,把數據輸出到控制檯。

System.out.println("helloworld");

// 獲取標準輸出流對象

PrintStream ps = System.out;

ps.println("helloworld");

ps.println();

// ps.print();//這個方法不存在

// System.out.println();

// System.out.print();

}

}


/*

* 轉換流的應用。

*/

public class SystemOutDemo2 {

public static void main(String[] args) throws IOException {

// 獲取標準輸入流

// // PrintStream ps = System.out;

// // OutputStream os = ps;

// OutputStream os = System.out; // 多態

// // 我能不能按照剛才使用標準輸入流的方式一樣把數據輸出到控制檯呢?

// OutputStreamWriter osw = new OutputStreamWriter(os);

// BufferedWriter bw = new BufferedWriter(osw);

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(

System.out));

bw.write("hello");

bw.newLine();

// bw.flush();

bw.write("world");

bw.newLine();

// bw.flush();

bw.write("java");

bw.newLine();

bw.flush();

bw.close();

}

}


分享到:


相關文章: