Java 流(Stream)、文件(File)和IO

1.JAVA包:Java.io 包

2.一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。

3.读取控制台输入

Java 的控制台输入由 System.in 完成。

为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流。

下面是创建 BufferedReader 的基本语法:

BufferedReader br = new BufferedReader(new

                      InputStreamReader(System.in));

4.从控制台读取多字符输入

每次调用 read() 方法,它从输入流读取一个字符并把该字符作为整数值返回。 当流结束的时候返回 -1。该方法抛出 IOException

//使用 BufferedReader 在控制台读取字符 import java.io.*;

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

      char c;

        // 使用 System.in 创建 BufferedReader       

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

        System.out.println("输入字符, 按下 'q' 键退出。");

        // 读取字符        do {            c = (char) br.read();

            System.out.println(c);

        } while (c != 'q');

    }}

5.从控制台读取字符串

从标准输入读取一个字符串需要使用 BufferedReader 的 readLine() 方法

//使用 BufferedReader 在控制台读取字符import java.io.*;

public class BRReadLines {    public static void main(String args[]) throws IOException {        // 使用 System.in 创建 BufferedReader        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str;

        System.out.println("Enter lines of text.");

        System.out.println("Enter 'end' to quit.");

        do {            str = br.readLine();

            System.out.println(str);

        } while (!str.equals("end"));

    }}

6.字符流和字节流


I/O流

 1字符 = 2字节 、 1字节(byte) = 8位(bit)  、 一个汉字占两个字节长度

 字节流:每次读取(写出)一个字节,当传输的资源文件有中文时,就会出现乱码,

 字符流:每次读取(写出)两个字节,有中文时,使用该流就可以正确传输显示中文。


7.两个重要的流是 FileInputStream 和 FileOutputStream

上面的程序首先创建文件test.txt,并把给定的数字以二进制形式写进该文件,同时输出到控制台上

import java.io.*;

public class fileStreamTest {    public static void main(String args[]) {       

            try {           

                    byte bWrite[] = { 11, 21, 3, 40, 5 };

                    OutputStream os = new FileOutputStream("test.txt");

            for (int x = 0; x < bWrite.length; x++) {               

                  os.write(bWrite[x]); // writes the bytes          

            }          

             os.close();

            InputStream is = new FileInputStream("test.txt");

            int size = is.available();

            for (int i = 0; i < size; i++) {                System.out.print((char) is.read() + "  ");

            }            is.close();

        } catch (IOException e) {            System.out.print("Exception");

        }    }}

你可能感兴趣的:(Java 流(Stream)、文件(File)和IO)