本文共 3413 字,大约阅读时间需要 11 分钟。
一、使用FileInputStream类读取文本文件的数据
package Test;import java.io.FileInputStream;import java.io.IOException;/* * 使用FileInputStream读取文本文件的数据 * 测试后结果是:不知道怎么能改成读取汉字的 * 最后一句*/public class Test3 { public static void main(String[] args) throws IOException { //创建对象 FileInputStream fis=new FileInputStream("E:\\myDoc\\hello.txt");//这个程序不会自动写好这个文件 int date ; System.out.println("可读取的字节数为:"+fis.available()); System.out.println("文件内容为:"); //循环读取数据 while((date=fis.read())!=-1){//date=fis.read())!=-1表示一个字节一个字节读这个文件,读到最后一个停止。 System.out.print ((char)date+"");//需要强制转换成char,否则文件中写入a会读出97. } //关闭流对象 fis.close(); }}二、使用FileOutputStream类向文本文件写入数据,该方法重写原来写入的内容会被覆盖
package Test;//使用FileOutputStream类向文本文件写入数据,该方法重写覆盖import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class test4 { public static void main(String[] args) throws IOException { String str="好好学习 ";//要写的内容 byte[]words=str.getBytes();//字节数组 //创建流对象,以追加方式写入文件 FileOutputStream fos=new FileOutputStream("E:\\myDoc\\hello.txt"); fos.write(words, 0, words.length);//从输入输出流读取最多len的长度的字符,保存到字符数组c中, //保存的位置从off开始,返回实际读取的字符长度 /*简单来说,write(byte[] b, int off, int len)就是将数组 b 中的 len 个字节按顺序写入输出流。 * 如果 b 为 null,则抛出 NullPointerException。如果 off 为负,或 len 为负,又或者 off+len 大 * 于数组 b 的长度,则抛出 IndexOutOfBoundsException。如果 len 为零,则不写入字节 * 否则,首先写入字节 b[off],然后写入字节 b[off+1],依此类推;最后一个写入字节是 b[off+len-1]。 * */ System.out.println("文件已更新"); fos.close();//关闭流 }}三、//使用字符流BufferedReader类 和FileReade类读取文本文件
package Test;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;//使用字符流BufferedReader类 和FileReade类读取文本文件public class Test5 { public static void main(String[] args) throws IOException { try { // 创建一个FileReader对象 FileReader fr = new FileReader("E:\\myDoc\\hello.txt"); // 创建一个BufferedReader对象 BufferedReader br = new BufferedReader(fr); // 读取一行信息 String line = br.readLine(); while (line != null) { System.out.println(line); line = br.readLine(); } // 关闭流 br.close(); fr.close(); } catch (Exception e) { System.out.println("文件不存在"); } }}四、//使用字符流BufferedWrite和FileWriter写文件,都是字符输出流的Write抽象下的子类。他们可以通过 //字符流的方式并通过缓冲区把数据写入文件,这也提高了写文本文件的效率。
package Test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;//使用字符流BufferedWrite和FileWriter写文件,都是字符输出流的Write抽象下的子类。他们可以通过//字符流的方式并通过缓冲区把数据写入文件,这也提高了写文本文件的效率。public class Test6 {public static void main(String[] args) throws IOException { try { //创建一个FileWriter对象那个 FileWriter fw=new FileWriter("E:\\myDoc\\hello.txt"); //创建一个BufferedWriter对象 BufferedWriter bw=new BufferedWriter(fw); //写入信息 bw.write("大家好!") ; bw.write("我正在学习BufferdeWriter"); bw.newLine(); bw.write("请多多指教"); bw.newLine(); bw.flush() ;//刷新缓冲区 fw.close();// } catch (Exception e) { System.out.println("文件不存在"); } //读取信息--------------------------------------------------------------------------- try { // 创建一个FileReader对象 FileReader fr = new FileReader("E:\\myDoc\\hello.txt"); // 创建一个BufferedReader对象 BufferedReader br = new BufferedReader(fr); // 读取一行信息 String line = br.readLine(); while (line != null) { System.out.println(line); line = br.readLine(); } // 关闭流 br.close(); fr.close(); } catch (Exception e) { System.out.println("文件不存在"); }}}
转载地址:http://tlrqj.baihongyu.com/