当前位置:主页   - 电脑 - 程序设计 - JAVA
Java 读/写文件文本文件的示例
来源:网络   作者:   更新时间:2012-06-11
收藏此页】    【字号    】    【打印】    【关闭

/*
*简单的读/写文本文件的示例
*这里包含了三个例子,即
*1.将文件读入到内存(这里是StringBuffer)的例子
*2.将内容中的文本写到文件
*3.将一个文件的内容读出来写入另一个文件中
*  同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流)
*三个例子可以独立存在,所以根据需要只看其中一个就行了。
*/
importjava.io.BufferedReader;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.io.PrintStream;
importjava.io.PrintWriter;
publicfinalclassAccessTextFile{
  /**
  *1.演示将流中的文本读入一个StringBuffer中
  *@throwsIOException
  */
  publicvoidreadToBuffer(StringBufferbuffer,InputStreamis)
    throwsIOException{
    Stringline;    //用来保存每行读取的内容
    BufferedReaderreader=newBufferedReader(newInputStreamReader(is));
    line=reader.readLine();   //读取第一行
    while(line!=null){     //如果line为空说明读完了
      buffer.append(line);    //将读到的内容添加到buffer中
      buffer.append("n");    //添加换行符
      line=reader.readLine(); //读取下一行
    }
  }
  /**
  *2.演示将StringBuffer中的内容读出到流中
  */
  publicvoidwriteFromBuffer(StringBufferbuffer,OutputStreamos){
    //用PrintStream可以方便的把内容输出到输出流中
    //其对象的用法和System.out一样
    //(System.out本身就是PrintStream对象)
    PrintStreamps=newPrintStream(os);  
    ps.print(buffer.toString());
  }
  /**
  *3*.从输入流中拷贝内容到输入流中
  *@throwsIOException
  */
  publicvoidcopyStream(InputStreamis,OutputStreamos)throwsIOException{
    //这个读过过程可以参阅readToBuffer中的注释
    Stringline;
    BufferedReaderreader=newBufferedReader(newInputStreamReader(is));
    PrintWriterwriter=newPrintWriter(newOutputStreamWriter(os));
    line=reader.readLine();
    while(line!=null){
      writer.println(line);
      line=reader.readLine();
    }
    writer.flush();  //最后确定要把输出流中的东西都写出去了
              //这里不关闭writer是因为os是从外面传进来的
              //既然不是从这里打开的,也就不从这里关闭
              //如果关闭的writer,封装在里面的os也就被关了
  }
  /**
  *3.调用copyStream(InputStream,OutputStream)方法拷贝文本文件
  */
  publicvoidcopyTextFile(StringinFilename,StringoutFilename)
    throwsIOException{
    //先根据输入/输出文件生成相应的输入/输出流
    InputStreamis=newFileInputStream(inFilename);
    OutputStreamos=newFileOutputStream(outFilename);
    copyStream(is,os);  //用copyStream拷贝内容
    is.close();//is是在这里打开的,所以需要关闭
    os.close();//os是在这里打开的,所以需要关闭
  }
  publicstaticvoidmain(String[]args)throwsIOException{
    intsw=1;  //三种测试的选择开关
    AccessTextFiletest=newAccessTextFile();
    switch(sw){
    case1://测试读
    {
      InputStreamis=newFileInputStream("E:  est.txt");
      StringBufferbuffer=newStringBuffer();
      test.readToBuffer(buffer,is);
      System.out.println(buffer);  //将读到buffer中的内容写出来
      is.close();
      break;
    }
    case2://测试写
  洹{
      StringBufferbuffer=newStringBuffer("Onlyatestn");
      test.writeFromBuffer(buffer,System.out);
      break;
   }
    case3://测试拷贝
    {
      test.copyTextFile("E:  est.txt","E:
.txt");
    }
      break;
    }
  }
}
http://blog.csdn.net/laester/archive/2008/08/08/2788204.aspx

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明