本文主要是介绍每天写java到期末考试(6.6)-java文件输入输出流实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、用字节流读写二进制文件
要求:用DataOutputStream+FileOutputStream类将1,2,…,100,这100个数字写入到文件
d:\out1.bin里,然后再用DatalnputStream+FilelnputStream类将d:\out1.bin的内读出来,并输出到屏幕上。
用DataOutputStream+FileOutputStream写入二进制数据时,直接调用DataOutputStream的writelnt()方
法将一个int型数据写入到文件中。读入数据时用DatalnputStream+FilelnputStream,调用DatalnputStream的
readlnt()方法读入一个int型数据。
判断是否读入完毕有3种办法:
a:用while循环,当抛出EOFException时表示数据读入完毕。
b:先调用File类的length()方法得到输入流的字节总数,字节总数除以4得到需要读入的次数,然后用for循
环来读入。
c:在写入d:\out1.bin时,先写入一个整数,表示一共写入了多少个数,例如先写入100,读入时先读第一
个数字,即100,然后循环100次读取其余的数字。
import java.io.*;public class BinaryFileReadWrite {public static void main(String[] args) {// 写入数据到文件try {DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:\\out1.bin"));for (int i = 1; i <= 100; i++) {dos.writeInt(i);}dos.close();System.out.println("写入数据成功");} catch (IOException e) {System.out.println("写入数据失败:" + e.getMessage());}// 从文件读取数据并输出到屏幕try {DataInputStream dis = new DataInputStream(new FileInputStream("d:\\out1.bin"));int num;while (true) {try {num = dis.readInt();System.out.print(num + " ");} catch (EOFException e) {break;}}dis.close();} catch (IOException e) {System.out.println("读取数据失败:" + e.getMessage());}}
}
2、用字符流读写字符文件
要求:用FileWriter类将1,2,…,100,这100个数字写入到文件d:\out2.txt里,然后再用FileReader类将
d:\out2.txt的内读出来,并输出到屏幕上。
注意:将一个数字以字符流的方式写入文件时,要将该数字先转化为字符,然后写入到文件中。从文件中读
入字符数据时,可以一次读入一个字符,也可以一次读多个字符,放到字符数组中。
import java.io.*;public class CharacterFileReadWrite {public static void main(String[] args) {// 写入数据到文件try (FileWriter fw = new FileWriter("d:\\out2.txt")) {for (int i = 1; i <= 100; i++) {fw.write(Integer.toString(i));fw.write("\n"); // 换行}System.out.println("写入数据成功");} catch (IOException e) {System.out.println("写入数据失败:" + e.getMessage());}// 从文件读取数据并输出到屏幕try (FileReader fr = new FileReader("d:\\out2.txt")) {int data;while ((data = fr.read()) != -1) {System.out.print((char) data);}} catch (IOException e) {System.out.println("读取数据失败:" + e.getMessage());}}
}
3、用字节流读写字符文件
用FileOutputStream将1,2,…,100,这100个数字的每个数字按照字节数组方式写入到文件d:\out3.txt
里,然后再用FilelnputStream类按照一次读入一个字节数组的方式将d:\out3.txt的内的数据读出来,并输出到
屏幕上。
注意:将一个数字以字节数组的方式写入文件时,要将该数字先用String.valueOf()方法转化为字符,然后
用String的getBytes()方法变成一个字节数组,然后用FileOutputStream类将字节数组写入到文件中。从文件中
读入字符数据时,可以用FilelnputStream一次读入一个字节数组,然后把字节数组变成字符串。
import java.io.*;public class ByteFileReadWrite {public static void main(String[] args) {// 写入数据到文件try (FileOutputStream fos = new FileOutputStream("d:\\out3.txt")) {for (int i = 1; i <= 100; i++) {String numberAsString = String.valueOf(i);byte[] bytes = numberAsString.getBytes();fos.write(bytes);fos.write("\n".getBytes()); // 换行}System.out.println("写入数据成功");} catch (IOException e) {System.out.println("写入数据失败:" + e.getMessage());}// 从文件读取数据并输出到屏幕try (FileInputStream fis = new FileInputStream("d:\\out3.txt")) {byte[] buffer = new byte[1024]; // 缓冲区大小int bytesRead;while ((bytesRead = fis.read(buffer)) != -1) {String data = new String(buffer, 0, bytesRead);System.out.print(data);}} catch (IOException e) {System.out.println("读取数据失败:" + e.getMessage());}}
}
这篇关于每天写java到期末考试(6.6)-java文件输入输出流实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!