欢迎访问宙启技术站
智能推送

Java中IO流函数的使用与示例

发布时间:2023-06-05 03:51:59

IO流是Java语言中的一种处理输入输出的机制,它的主要作用是在程序与外部设备(如文件、网络等)之间进行数据传输,也可以实现数据的读取和写入操作,充分发挥程序的功能性。Java中常用的IO流包括字节流和字符流两类。

字节流

字节流以字节为单位,读写二进制数据,主要用于处理图像、音频、视频等媒体文件。Java中的字节流被封装在java.io包中,主要包括FileInputStream、FileOutputStream、DataInputStream和DataOutputStream等类。

FileInputStream类

这个类用来读取文件,并以字节为单位传输。可以使用构造函数实例化该类,参数为待读取的文件。

示例:

try{

    FileInputStream input = new FileInputStream("test.txt");

    int i;

    while((i=input.read()) != -1){

        System.out.print((char)i);

    }

    input.close();

}catch(Exception e){

    e.printStackTrace();

}

FileOutputStream类

这个类用来写入文件,并以字节为单位传输。同样可以使用构造函数实例化该类,参数为待写入的文件。

示例:

try{

    FileOutputStream output = new FileOutputStream("test.txt");

    String str = "Hello World!";

    byte[] bytes = str.getBytes();

    output.write(bytes);

    System.out.println("Data written to the file.");

    output.close();

}catch(Exception e){

    e.printStackTrace();

}

DataInputStream类

这个类可以通过读取字节流中的基本数据类型来进行输入操作,并可以用来读取由DataOutputStream写入的数据。

示例:

try{

    FileInputStream file = new FileInputStream("test.txt");

    DataInputStream input = new DataInputStream(file);

    System.out.println(input.readUTF());

    System.out.println(input.readInt());

    System.out.println(input.readDouble());

    input.close();

}catch(Exception e){

    e.printStackTrace();

}

DataOutputStream类

这个类可以通过写入字节流中的基本数据类型来进行输出操作,并可以用来写入基本数据类型的值。

示例:

try{

    FileOutputStream file = new FileOutputStream("test.txt");

    DataOutputStream output = new DataOutputStream(file);

    output.writeUTF("Hello World!");

    output.writeInt(123);

    output.writeDouble(123.45);

    output.close();

    System.out.println("Data written to the file.");

}catch(Exception e){

    e.printStackTrace();

}

字符流

字符流以字符为单位,读写文本数据,主要用于读写文本文件和其他调用文本文件时的数据格式转换。Java中的字符流被封装在java.io包中,主要包括FileReader、FileWriter、BufferedReader和PrintWriter等类。

FileReader类

这个类用来读取文本文件,并以字符为单位传输。可以使用构造函数实例化该类,参数为待读取的文件。

示例:

try{

    FileReader file = new FileReader("test.txt");

    int ch;

    while((ch=file.read()) != -1){

        System.out.print((char)ch);

    }

    file.close();

}catch(Exception e){

    e.printStackTrace();

}

FileWriter类

这个类用来写入文本文件,并以字符为单位传输。同样可以使用构造函数实例化该类,参数为待写入的文件。

示例:

try{

    FileWriter file = new FileWriter("test.txt");

    String str = "Hello World!";

    file.write(str);

    System.out.println("Data written to the file.");

    file.close();

}catch(Exception e){

    e.printStackTrace();

}

BufferedReader类

这个类可以通过按行读取字符流来进行输入操作,并可以用来读取文本中的所有内容。

示例:

try{

    FileReader file = new FileReader("test.txt");

    BufferedReader input = new BufferedReader(file);

    String str;

    while((str=input.readLine()) != null){

        System.out.println(str);

    }

    input.close();

}catch(Exception e){

    e.printStackTrace();

}

PrintWriter类

这个类可以通过按行写入字符流来进行输出操作,并可以用来写入文本中的所有内容。

示例:

try{

    PrintWriter output = new PrintWriter("test.txt");

    String str = "Hello World!";

    output.println(str);

    output.println(123);

    output.println(123.45);

    output.close();

    System.out.println("Data written to the file.");

}catch(Exception e){

    e.printStackTrace();

}

总结

Java中的IO流是一个功能强大的处理输入输出的机制,包括字节流和字符流两类,分别用于读写二进制数据和文本数据。在使用过程中,可以根据实际需要选择不同的类来进行输入输出操作,充分发挥程序的功能性。同时,需要注意的是,在使用IO流时要仔细处理异常,避免程序出错。