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 ...
随机推荐
- [转]MyEclipse for Spring2014破解
转至:http://blog.my-eclipse.cn/myeclipse-2014-crack.html 一.安装完成MyEclipse2014(适用于2013等版本)后,不要打开软件,下载破解附 ...
- java命令行运行jar里的main类
一般运行包含manifest的jar包,可以使用 java -jar <jar-file-name>.jar 如果jar里没有 manifest,则可以使用 java -cp foo.ja ...
- 用 JavaScript 修改样式元素
利用 <style> 元素,我们可以在网页中嵌入样式表.如果需要动态增加 <style> 元素,似乎可以用如下的 JavaScript 代码: var style = docu ...
- CCLabelTTF、CCLabelAtlas和CCLabelBMFont的区别
转自:http://blog.sina.com.cn/s/blog_67a5e47201018tj8.html 在Cocos2d以及Cocos2d-x中,我们经常会用到CCLabelTTF以及CCLa ...
- oracle连接数据的oci和thin的区别
1)从使用上来说,oci必须在客户机上安装oracle客户端或才能连接,而thin就不需要,因此从使用上来讲thin还是更加方便,这也是thin比较常见的原因.2)原理上来看,thin是纯java实现 ...
- C++ 预编译头文件
1.解决什么问题? C++ 编译器是单独,分别编译的,每个cpp文件,进行预编译(也就是对#include,define 等进行文本替换),生成编译单元.编译单元是一个自包含文件,C++编译器对编译单 ...
- HttpClient 设置代理方式
HttpClient httpClient = new HttpClient(); //设置代理服务器的ip地址和端口 httpClient.getHostConfiguration().setPro ...
- delphi TToolBar
工具栏 的属性 xe4的事件 Customizable OnCustomizeCanDelete OnCustomizeCanInsert OnCustomized OnCustomizeAdded ...
- HDU 4932 贪心
Miaomiao's Geometry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- HDU 2037 今年暑假不AC (贪心)
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...