柯侧耳倾听者 - 云代码空间
—— 翱翔在Java世界的海洋之上
输入输出编程
【实验目的】
1.掌握文件类的使用方法及文件过滤的方法。
2.掌握基于字节流进行输入/输出的方法、基于字符流进行输入/输出的方法、字节流与字符流之间的转换方法、掌握过滤器流的使用方法
【实验要求】
1. 编写运用字符流和字符流输入/输出各种方法的应用程序。【实验内容】
一、文件类及文件过滤
1.显示指定目录下的子目录及文件、文件过滤方法代码略,见课本例题
二、字节流字符流的输入输出方法
1.文件复制程序
(1)程序功能:复制二进制文件(如一幅图片d:\01.jpg,将此图片复制到E盘下,取名02.jpg)和复制文本文件(如把当前目录下的01.txt复制到当前目录下的02.txt)。
(2)编写LX8_1.java程序文件,源代码如下:
import java.io.*;
public class LX8_1{
public static void main(String[] args){
LX8_1m=new LX8_1 ();
m.copyByByte();
m.copyByChar();
}
public void copyByByte(){
try{
FileInputStream fis = new FileInputStream("D:\\01.jpg");
FileOutputStream fos = new FileOutputStream("E:\\02.jpg");
int b = fis.read();
while(b != -1){
fos.write(b);
b = fis.read();
}
fis.close();
}catch(IOException e){
e.printStackTrace();
}
}
public void copyByChar(){
try{
BufferedReader br = new BufferedReader(new
FileReader("01.txt"));
BufferedWriter bw = new BufferedWriter(new
FileWriter("02.txt"));
String line = br.readLine();
while(line != null){
bw.write(line);
line = br.readLine();
if(line != null)
bw.newLine();
}
bw.close();
br.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
(3)编译运行该程序,查看运行结果。
(4)程序说明:以字节流的方式可以复制任何格式的文件,以字符流的方式只能复制文本文件。
三.过滤器流的使用方法
过滤器输入流从已存在的输入流(比如FileInputStrem)中读取数据,对数据进行适当的处理和改变后再送入程序。过滤器输出流向已存在的输出流(比如FilterOutputStream)写入数据,在数据抵达底层流之前进行转换处理等工作。
1.使用过滤器流输入输出
(1)程序功能:用DataInputStream输入一个整型数、一个双精度型和一个字符串型到文件中,然后用DataOutputStream将这些文件读出并打印到标准输出设备。
(2)编写LX_2.java 程序文件,源代码如下。
import java.io.*;
public class LX_2{
public static void main(String[] args) throws Exception {
File f=new File("3.txt");
f.createNewFile();
DataInputStream dis=new DataInputStream(new FileInputStream(f));
DataOutputStream dos=new DataOutputStream(new FileOutputStream(f));
dos.writeInt(100);
dos.writeDouble(1.111111);
dos.writeUTF("Test is ok?");
dos.close();
System.out.println("The text is:");
System.out.println(dis.readInt());
System.out.println(dis.readDouble());
System.out.println(dis.readUTF());
dis.close();
}
}
(3)编译程序LX_2.java并运行。
(4)程序说明:该程序通过DataOutputStream分别输入整数、浮点数和字符串到一个txt文件中,整数和浮点数分别转化为4个字节和8个字节存入文件,所以当用记事本打开文件时会出现乱码,但通过DataInputStream可以将文件中的数据准确地转换过来。