java按行读取txt并按行写入
IO流想必大家都很熟悉了,本次实现的需求是按行读取文件内容并且按行写入,代码如下:
try {
String encoding="utf-8"; //设定自己需要的字符编码集
File file = new File("c:/text.txt");
if(file.exists() && file.isFile()){
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), encoding);// 考虑到编码格式
//FileReader read = new FileReader(file); //不考虑转码,可使用FileReader;
BufferedReader br = new BufferedReader(read);//使用缓冲流按行读取
String lineText = null;
StringBuffer sb = new StringBuffer();
while((lineText=br.readLine()) !=null){
System.out.println(lineText);
sb.append(lineText+"\n");
}
br.close();
read.close();
FileWriter fw = new FileWriter("c:/t.txt");
BufferedWriter bw = new BufferedWriter(fw);
bw.write(sb.toString());
bw.close();
fw.close();
}else{
System.out.println("找不到指定的文件");
} } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
下面是个人对以上代码的理解:
1、为什么用字符流 而不用字节流?
文件读取选择字符流是因为文件是纯文本,使用字符流可以按行读取,操作快,适合阅读。
2、为什么用InputStreamReader 而不用FileReader?
FileReader是InputStreamReader的子类,继承了它的方法,则不同点在于构造函数,
InputStreamReader的构造函数参数为 InputStream 和编码方式,而FileReader的构造函数参数可以file对象和String的path,当需要根据file和paht
读取文件时,选用FileReader。
另记:在使用String类的split()方法时,按“|” 截取字符串的时候,并不能出现正常的结果,原因是“|” 是转义字符,
需加("\\|")。
java按行读取txt并按行写入的更多相关文章
- 参数化时按行读取txt文件,如何去掉换行符"\n"
参数化按行读取txt,每行默认自带了回车换行操作,导致脚本报错,故而按行读取时,需要去掉默认的'\n' #coding=utf-8 from selenium import webdriver imp ...
- Delphi 快速读取TXT 指定行的数据
http://blog.csdn.net/MichaelJScofield/article/details/41869785 Delphi 快速读取TXT 指定行的数据 分类:Delphi个人挫品 ( ...
- MFC-按行读取TXT数据
TXT中数据格式如下: 1 23 4 0 4 10 …… 要实现的功能是:定义一个函数,每次调用时从TXT文档中读一个整数 ,赋值给变量.同时,文件位置向下移动一行,以便下次调用时读取下一行的数据. ...
- C# 读取txt文本内容写入到excel
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 按行读取.txt文件,并按行写入到新文件中
package com.test.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fi ...
- 按行读取TXT文件中的内容
public Dictionary<int, string> GetDicFromLog() { try { StreamReader sr = new StreamReader(file ...
- c++ 按行读取txt文本
CStdioFile 类的声明保存在 afx.h 头文件中. CStdioFile 类继承自 CFile 类, CStdioFile 对象表示一个用运行时的函数 fopen 打开的 c 运行时的流式文 ...
- Java读取txt文件和写入txt文件
package com.nickwong.code; import java.io.*; /** * Created by Nickwong on 31/07/2018. * 根据1-8楼的建议,优化 ...
- 【java IO】使用Java输入输出流 读取txt文件内数据,进行拼接后写入到另一个文件中
package com.sxd.test.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java ...
随机推荐
- Umbraco中的Member登录时的Lock out功能
请参看文章 https://our.umbraco.org/forum/using-umbraco-and-getting-started/76389-preventing-member-lock-o ...
- ElasticSearch中文分词(IK)
ElasticSearch常用的很受欢迎的是IK,这里稍微介绍下安装过程及测试过程. 1.ElasticSearch官方分词 自带的中文分词器很弱,可以体检下: [zsz@VS-zsz ~]$ c ...
- memcached构建集群分析之一
memcached本身是不支持集群的,集群所关注的容灾.容错.宕机恢复机制统统都没有,实战中需要自己实现容灾机制. memcached集群相比memcached的优势: 巨量数据分布到集群的多台应用主 ...
- GitHub-撤销commit
以下方法适用于:撤销最后一次提交的情况 步骤如下: 步骤1.使用 ”git log“ 命令 找到 想要撤销的操作之前的一次提交的commit id : 比如:使用 git log命令如下结果 comm ...
- Web项目的三层架构和MVC架构异同
http://www.cnblogs.com/zhhh/archive/2011/06/10/2077519.html 又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑 ...
- #定位系统性能瓶颈# strace & ltrace
strace和ltrace分别相应的是系统调用和库函数调用, 系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思,面向的是硬件. 而库函数调用则面向的是应用开发的.相当于 ...
- .net自动生成版本号
在 AssemblyInfo.cs 文件中 修改 一下属性 [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFi ...
- C# 利用范型与扩展方法重构代码
在一些C#代码中常常可以看到 //An Simple Example By Ray Linn class CarCollection :ICollection { IList list; public ...
- 【项目实例】android开发游戏音效代码实例
//音效的音量 int streamVolume; //定义SoundPool 对象 private SoundPool soundPool; //定义HASH表 private HashMap< ...
- python selenium自动化(三)Chrome Webdriver的兼容
当一个自动化测试被实现在一个浏览器之后,我们会希望我们的测试能够覆盖到尽量多的别的浏览器.通过跨平台的测试来保证我们的程序在多个浏览器下都能正常工作. 在安装了selenium之后,firefox w ...