简单的用java实现读/写文本文件的示例

更新时间:2008年07月26日 13:09:26   作者:

同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流)

三个例子可以独立存在,所以根据需要只看其中一个就行了。

/*

* 简单的读/写文本文件的示例

* 这里包含了三个例子,即

* 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;

}

}

}

相关文章

hibernate validator提供了一套比较完善、便捷的验证实现方式。下面小编给大家介绍下springboot使用hibernate validator校验方式,感兴趣的朋友一起看看吧2018-01-01

这篇文章主要介绍了Eclipse最新版使用过程中遇到的问题总结的相关资料,本文通过图文并茂的形式给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下2016-09-09

这篇文章主要给大家介绍了关于如何利用Java实现复制Excel工作表功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-12-12

这篇文章主要介绍了java读取properties配置文件的方法,涉及java操作properties配置文件的相关技巧,需要的朋友可以参考下2015-05-05

这篇文章主要介绍了你应该知道的这些Mybatis-Plus使用技巧(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-08-08

这篇文章主要介绍了Java编程中JDialog窗体的用法及实例,描述了其特征,具有一定参考价值,需要的朋友可以了解下。2017-09-09

这篇文章主要给大家介绍了关于Spring Boot中@ConditionalOnProperty的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-12-12

这篇文章主要介绍了Redis缓存,泛型集合与json字符串的相互转换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-07-07

这篇文章主要介绍了解决mybatis返回boolean值时数据库返回null的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11

这篇文章主要介绍了Mybatis-Plus BaseMapper的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-08-08

最新评论

文本文件 java_简单的用java实现读/写文本文件的示例相关推荐

  1. gradle插件 java_简单的Gradle Java插件自定义

    gradle插件 java 正如我在" 用Gradle构建Java的初步了解"一文中所展示的那样,当Gradle使用Java插件并将文件和目录放置在该插件期望的位置时, Gradl ...

  2. Java中 读-写 文件 BufferedReader BufferedWriter

    本篇文章,为大家带来Java中进行文件读写的一种方式. 我的文件目录: /Users/gisboy/Desktop/a.txt Java中,用java.io.BufferedReader 进行文件内容 ...

  3. 魔法java_可别在Java代码中写那么多魔法值了

    1. 前言 重构老代码中遇到了不少类似下面这种写法: public void attend(String value) { if ("0".equals(value)) { //t ...

  4. java fileinputreader_java BufferedReader,FileInputStream实现文本文件读/写

    /* * 简单的读/写文本文件的示例 * 这里包含了三个例子,即 * 1. 将文件读入到内存(这里是StringBuffer)的例子 * 2. 将内容中的文本写到文件 * 3. 将一个文件的内容读出来 ...

  5. 文本文件 java,java 写文本文件

    code 1:将特定String写入特定文件,不覆盖. import java.io.*; import java.util.*; public class OutputLog { public st ...

  6. 文本文件写java_Java 读/写文件文本文件的示例

    /* * 简单的读/写文本文件的示例 * 这里包含了三个例子,即 * 1. 将文件读入到内存(这里是StringBuffer)的例子 * 2. 将内容中的文本写到文件 * 3. 将一个文件的内容读出来 ...

  7. 简单一文带你读懂Java变量的作用和三要素

    Java变量的作用 不只是java,在其他的编程语言中变量的作用只有一个:存储值(数据) 在java中,变量本质上是一块内存区域,数据存储在java虚拟机(JVM)内存中 变量的三要素 变量的三要素分 ...

  8. java判断读到末尾_Java Web入门之java--第一节 java 简介及开发环境安装

    本篇博客是Java web入门的第一篇博客,这篇博客主要讲述java语言的一些简介. 一)先从Java语言的诞生说起. 1991年,Sun公司在一个叫做James Gosling的人的带领下,成立了一 ...

  9. java将读到的换行符存储到数据表中_Java学习之路013天

    第27次 学习主题:容器遍历以及IO流 学习目标: 1 掌握容器的遍历 2 掌握IO流的基本概念,结构,以及文件字节流 对应视频: http://www.itbaizhan.cn/course/id/ ...

最新文章

  1. 用ASP.Net(C#)连接Oracle数据库的方法
  2. 2022图神经网络5篇最新的研究综述:双曲/图分类/联邦/等变/异质性
  3. Delphi常见的运行期Access Violation错误分析
  4. okgo 缓存html,okhttp-OkGo OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持 RxJava,比 Retro @codeKK Android开源站...
  5. mysql输入错误怎样更正_HotDB MySQL 篇| MySQL 源码系列的补充与更正
  6. HTTP的请求头标签 If-Modified-Since与Last-Modified 相等就是200新的请求 不等就是304没有变化
  7. C++中如何定义动态数组
  8. oracle00333,Oracle数据库REDO损坏ora-00333修复手札
  9. Python查找算法之 -- 列表查找和二分查找
  10. 英语学习—每天进步一丢丢系列(一)
  11. 用代码排出自己的名字
  12. 扫码连wifi小程序源码
  13. 使用低代码开发的图书管理系统如何使用扫条形码实现图书的录入?
  14. 短信API接口比较常见的回调状态
  15. 三分钟带你了解月薪5W的web前端开发到底是干嘛!
  16. 教你如何在word中像LaTex那样打公式
  17. 关于电子科技大学内共享单车使用的调查报告
  18. 从汇编指令解决浮点数疑问
  19. vim配置http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html
  20. Java IO篇 Java IO编程

热门文章

  1. 通风与防排烟工程电子书_菠菜关于防排烟系统使用软接头工程量计算注意及定额选用建议...
  2. provide和inject,Vue父组件直接给孙子组件传值
  3. 小程序给视频加默认图片封面,点击播放视频并停止播放上一个视频
  4. 微信小程序生成小程序二维码 php 直接可以用
  5. 【DocFX文档翻译】DocFX 入门 (Getting Started with DocFX)
  6. Parentheses Balance (括号平衡)---栈
  7. [AVR]使用AVR单片机驱动舵机
  8. Hive 按某列的部分排序 以及 删列操作
  9. RT-thread内核之进程间通信
  10. 分享一个mysql 复杂查询的例子