java 读写文件

简单的读/写文本文件的示例
*   这里包含了三个例子,即
*   1.   将文件读入到内存(这里是StringBuffer)的例子
*   2.   将内容中的文本写到文件
*   3.   将一个文件的内容读出来写入另一个文件中
*         同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流)
*         三个例子可以独立存在,所以根据需要只看其中一个就行了。
*/
import   java.io.BufferedReader;
import   java.io.FileInputStream;
import   java.io.FileOutputStream;
import   java.io.IOException;
import   java.io.InputStream;
import   java.io.InputStreamReader;
import   java.io.OutputStream;
import   java.io.OutputStreamWriter;
import   java.io.PrintStream;
import   java.io.PrintWriter;
public   final   class   AccessTextFile   {
       /**
         *   1.   演示将流中的文本读入一个   StringBuffer   中
         *   @throws   IOException
         */
       public   void   readToBuffer(StringBuffer   buffer,   InputStream   is)
               throws   IOException   {
               String   line;                 //   用来保存每行读取的内容
               BufferedReader   reader   =   new   BufferedReader(new   InputStreamReader(is));
               line   =   reader.readLine();               //   读取第一行
               while   (line   !=   null)   {                     //   如果   line   为空说明读完了
                       buffer.append(line);                 //   将读到的内容添加到   buffer   中
                       buffer.append(" //n");                 //   添加换行符
                       line   =   reader.readLine();       //   读取下一行
               }
       }
       /**
         *   2.   演示将   StringBuffer   中的内容读出到流中
         */
       public   void   writeFromBuffer(StringBuffer   buffer,   OutputStream   os)   {
               //   用   PrintStream   可以方便的把内容输出到输出流中
               //   其对象的用法和   System.out   一样
               //   (System.out   本身就是   PrintStream   对象)
               PrintStream   ps   =   new   PrintStream(os);      
               ps.print(buffer.toString());
       }
       /**
         *   3*.   从输入流中拷贝内容到输入流中
         *   @throws   IOException
         */
       public   void   copyStream(InputStream   is,   OutputStream   os)   throws   IOException   {
               //   这个读过过程可以参阅   readToBuffer   中的注释
               String   line;
               BufferedReader   reader   =   new   BufferedReader(new   InputStreamReader(is));
               PrintWriter   writer   =   new   PrintWriter(new   OutputStreamWriter(os));
               line   =   reader.readLine();
               while   (line   !=   null)   {
                       writer.println(line);
                       line   =   reader.readLine();
               }
               writer.flush();           //   最后确定要把输出流中的东西都写出去了
                                                       //   这里不关闭   writer   是因为   os   是从外面传进来的
                                                       //   既然不是从这里打开的,也就不从这里关闭
                                                       //   如果关闭的   writer,封装在里面的   os   也就被关了
       }
       /**
         *   3.   调用   copyStream(InputStream,   OutputStream)   方法拷贝文本文件
         */
       public   void   copyTextFile(String   inFilename,   String   outFilename)
               throws   IOException   {
               //   先根据输入/输出文件生成相应的输入/输出流
               InputStream   is   =   new   FileInputStream(inFilename);
               OutputStream   os   =   new   FileOutputStream(outFilename);
               copyStream(is,   os);           //   用   copyStream   拷贝内容
               is.close();   //   is   是在这里打开的,所以需要关闭
               os.close();   //   os   是在这里打开的,所以需要关闭
       }
       public   static   void   main(String[]   args)   throws   IOException   {
               int   sw   =   1;           //   三种测试的选择开关
               AccessTextFile   test   =   new   AccessTextFile();
              
               switch   (sw)   {
               case   1:   //   测试读
               {
                       InputStream   is   =   new   FileInputStream("E:test.txt");
                       StringBuffer   buffer   =   new   StringBuffer();
                       test.readToBuffer(buffer,   is);
                       System.out.println(buffer);           //   将读到   buffer   中的内容写出来
                       is.close();
                       break;
               }
               case   2:   //   测试写
               {
                       StringBuffer   buffer   =   new   StringBuffer("Only   a   test//n");
                       test.writeFromBuffer(buffer,   System.out);
                       break;
               }
               case   3:   //   测试拷贝
               {
                       test.copyTextFile("E:test.txt",   "E:r.txt");
               }
                       break;
               }
       }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值