1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.InputStreamReader; 11 import java.io.OutputStreamWriter; 12 import java.io.UnsupportedEncodingException; 13 14 /** 15 * 文件读取四步骤 16 * ---------要保证文件存在,不能保证就需判断是否存在,在这里手动创建一个文件text.txt以确保存在 17 * 1:获取文件 18 * 2:将文件写入到文件输入流中<文件输入流是字节流> 19 * 3:将文件流写入到输入流Reader中 20 * 4:将输入流文件放到缓冲流BufferReader中 21 * 四步骤:执行完毕文件会读入缓冲流 22 * 5:从缓冲流中每次读取一行打印输出 23 * 6:关闭资源<流> 24 * 文件写出同理: 25 * @author NEXT_NiGHT 26 * 27 */ 28 public class FileRW { 29 30 public static void main(String[] args) { 31 //----------------------文件读入 32 //1 33 File file = new File("text.txt"); 34 try { 35 //2 36 FileInputStream fis=new FileInputStream(file); 37 //3 38 InputStreamReader isr=new InputStreamReader(fis,"utf-8");//FileInputStream字符流转换成字节流要注意编码 39 //4 40 BufferedReader br=new BufferedReader(isr); 41 //5 42 String line;//用来保存读取到的数据 43 while((line = br.readLine())!=null){//每次读取一行不为空 44 System.out.println(line); 45 } 46 //6 47 br.close(); 48 isr.close(); 49 fis.close(); 50 51 52 //----------------------文件写出 53 //1链接文件<要写出的位置> 54 File file2=new File("newtext.txt"); 55 //2文件输出流 56 FileOutputStream fos=new FileOutputStream(file2); 57 //3输出流 58 OutputStreamWriter os=new OutputStreamWriter(fos,"utf-8"); 59 //4写入缓冲流 60 BufferedWriter bw=new BufferedWriter(os); 61 //5写入 62 bw.write("七月七日长生殿\n"); 63 bw.write("夜半无人私语时\n"); 64 bw.write("在天月作比翼鸟\n"); 65 bw.write("在地愿为连理枝\n"); 66 //6关闭资源 67 bw.close(); 68 os.close(); 69 fos.close(); 70 } catch (FileNotFoundException e) { 71 e.printStackTrace(); 72 } catch (UnsupportedEncodingException e) { 73 e.printStackTrace(); 74 } catch (IOException e) { 75 e.printStackTrace(); 76 } 77 78 79 80 81 } 82 }
以上代码完整阐述了从文件中读取的内容并打印输出,以及如何向一个文件中写入内容:
完整的eclise java代码,可直接运行;
text.txt文件:
七月七日长生殿 夜半无人私语时 在天愿作比翼鸟 在地愿为连理枝
注意:
33行位置链接一个文件,若此时文件不存在那么进行后面的操作就会报异常,提示文件不存在。如果未进行文件是否存在的判定那么就必须保证文件是存在的。所以运行之前要在工程中创建一个文件text.txt
55行的位置同样链接了一个文件,若文件不存在是否后续操作也会报异常呢?答案是否定的,56行的操作会自动创建一个文件,并且后面写入内容时会存入此文件
62行写入文件时用到了write这个函数,执行完毕后如果我们换掉写入的内容,那么newtext.txt这个文件中的内容将是新的内容,write函数将会覆盖掉文件原来的内容
2015-07-20