Java流、文件

来源:互联网 发布:58淘宝美工学徒新骗局 编辑:程序博客网 时间:2024/06/17 20:29
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。

读取控制台输入

由System.in完成。
为了获得一个绑定到控制台的字符流,可以把System.in包装在一个BufferedReader对象中创建一个字符流。
创建BufferedReader的基本语法:

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

Bufferedreader 对象创建后,我们便可以使用read()方法从控制台读取一个字符,或者readline()方法读取一个字符串。

从控制台读取多字符输入

从BufferedReader对象读取一个字符要使用read()方法,语法如下:

int read() throws IOException

每次调用read()方法,它从输入流流读取一个字符并把该字符作为整数值返回。当流结束时返回-1.该方法抛出 IOException。
下面程序示范用read()方法从控制台不断读取字符直到用户输入”q”.

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');    }}

两个重要的流

FileInputStream

该流用于从文件读取数据,它的对象可以用关键字new来创建。

InputStream f=new FileInputStream("c:/java/hello");

也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件对象:

File f=new File("c:/java/hello");InputSteam out=new FileInputSteam(f);

使用下面方法进行读取流或者其他的流操作。

public void close() throws IOException{}关闭此文件输入流并释放与此流有关的所有系统资源。抛出IOException异常。protected void finalize()throws IOException {}这个方法清除与该文件的连接。确保在不再引用文件输入流时调用其 close 方法。抛出IOException异常。public int read(int r)throws IOException{}这个方法从 InputStream 对象读取指定字节的数据。返回为整数值。返回下一字节数据,如果已经到结尾则返回-1。public int read(byte[] r) throws IOException{}这个方法从输入流读取r.length长度的字节。返回读取的字节数。如果是文件结尾则返回-1。public int available() throws IOException{}返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取的字节数。返回一个整数值。

FileOutputStream

该类用来创建一个文件并向文件中写数据。
如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。
使用字符串类型的文件名创建一个输出流对象:

OutputStream f=new FileOutputStream("C:/java/hello")

使用一个文件对象创建:

File f=new File("C:/java/hello");OutputStream f=new FileOutputStream(f);

创建OutputStream 对象完成后,就可以使用下面的方法来写入流或者进行其他的流操作。

public void close() throws IOException{}关闭此文件输入流并释放与此流有关的所有系统资源。抛出IOException异常。protected void finalize()throws IOException {}这个方法清除与该文件的连接。确保在不再引用文件输入流时调用其 close 方法。抛出IOException异常。public void write(int w)throws IOException{}这个方法把指定的字节写到输出流中。public void write(byte[] w)把指定数组中w.length长度的字节写到OutputStream中。