`

转摘 简单的用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;
}
}

}
详细出处参考:http://www.jb51.net/article/15276.htm
分享到:
评论

相关推荐

    精通java必须看的经典书籍

    1. AJAX介绍 AJAX是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间传送或接受数据的技术。 2. AJAX实例 AJAX可以用来创建更多交互式...原文版权归作者所有,如有转摘请注明原作者以及编辑者信息

    Eclipse中用SWT和JFace开发入门-转摘 .doc

    Eclipse中用SWT和JFace开发入门-转摘 .doc

    access2003.exe 单个程序文件,159mb。能正常使用。

    转摘:Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。 Access能够...

    使用PB11实现WEBSERVICE

    四、该代码只演示pb+ws的简单实现,包含带检索参数时的通用函数编写,具体用于商业时还有很多可以优化的地方,不在本程序讨论范畴; pb8版权所有,QQ:10308237,呵呵,转摘时记得不要把pb8的信息kill掉就好了;

    公司控制权之争及公司股权设计模式转摘.doc

    公司控制权之争及公司股权设计模式转摘.doc

    新零售时代,小卖家如何迅速做出销量(转摘).zip

    新零售时代,小卖家如何迅速做出销量(转摘).zip

    完全平方公式变形的应用练习题_2(转摘).doc

    完全平方公式变形的应用练习题_2(转摘).doc

    新零售时代,小卖家如何迅速做出销量(转摘).doc

    新零售时代,小卖家如何迅速做出销量(转摘).doc

    巧用RSS技术实现博客与主页对接

    目前,RSS主要用于用户主动订阅网站新闻,同时,通过RSS还可以实现站 点与站点之间进行内容共享。此种共享,不同于一般的内容转摘,而是在对方网站上显示来自另一方网站的文章标题和URL,访问者点击标题就直接进入...

    EmEditor Professional 8.01.rar

    一款功能强大的文本编辑器!它启动速度快,可以完全代替Windows自带的记事本,足以胜任日常的文本编辑工作,而且良好地支持Unicode和中文字符,还支持20多种编程语言的语法突出显示。此专业版,增强了程序的编辑...

    新零售时代,小卖家如何迅速做出销量(转摘)-知识杂货店.doc

    新零售时代,小卖家如何迅速做出销量(转摘)-知识杂货店.doc

    BMP转PCB软件 Bmp2Pcb

    Bmp2Pcb,是一款专业的BMP转PCB软件,确切的说Bmp2Pcb是一款pcb抄板软件,转出的文件只能用PROTEL软件打开。X,Y方向的分辨率是对应扫描的分辨率。保留区的颜色是指要将图片中的什么颜色输出为导线。BMP图象格式不...

    gvim便携版 gvim绿色版完美配置

    Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富 ,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。Vim的第一个版本由Bram Moolenaar在1991年发布。...

    网上转摘的华为笔试题目及答案

    华为从事通信网络技术与产品的研究、开发、生产与销售,是中国电信市场的主要供应商之一,并已成功进入全球电信市场。每年华为都要在各大高校招聘大批的应界生,特别是华中科技大学。  下面据说是华为公司的笔试题...

    计算机科学中最重要的32个算法——转摘.docx

    这个是我从网上找到的资料,现在共享给大家,希望能帮助到大家。

    win7下自带分区图解

    有很多的朋友给自己硬盘新建分区都喜欢用第三方软件,我想原因是在XP系统下只能在安装系统时才能进行分区,一旦系统做好之后要想新建分区就必须使用三方软件才行。但到了Vista系统和现下的win7系统时,这个问题就变...

    如何写出高效优美的C语言代码

    转摘,供应初学者使用,对于从事编程工作有一定的帮助

    一种简易的DC-AC逆变电路

    转摘前言:逆变器就是将低压直流电转变成为工频交流电的装置。许多场合需要用到 逆变器,比如:汽车中的电源是由蓄电池提供的12V 或者24V 直流电,如果要在汽车中使用 电视、冰箱等普通家用电器,就要逆变器;在...

    open cv 人脸检测

    关于人脸检测的open cv实现,期刊转摘

    Memcache2.8

    memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是...

Global site tag (gtag.js) - Google Analytics