佳工机电网 在线工博会 我的佳工网 手机版 English
关键字  
  选择展区 >>
您的位置: 首页 > ERP/制造业信息化展区 > 电脑/软件/周边产品展厅 > 产品库 > 技术论文 > 正文 产品库 会展 人才 帮助 | 注册 登录  
电脑/软件/周边产品
 按行业筛选
 按产品筛选
查看本类全部文章
e展厅 产品库 最新动态 技术文章 企业目录 资料下载 视频/样本 反馈/论坛
  技术应用 | 基础知识 | 外刊文摘 | 业内专家 | 文章点评 投稿 发表科技文章 
使用Java操作文本文件方法详解
newmaker
欢迎访问e展厅
展厅
4
电脑/软件/周边产品展厅
瘦客户机, 机架服务器, 塔式服务器, 刀片服务器, 商用电脑, ...
最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中write(char[] ch,int off,int length),flush()和close()方法为抽象方法,Reader中read(char[] ch,int off,int length)和close()方法是抽象方法。子类应该分别实现他们。

当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader,它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如GBK等。当使用FileReader读取文件的时候,

FileReader fr = new FileReader(“ming.txt”);
int ch = 0;
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch);
}

其中read()方法返回的是读取得下个字符。当然你也可以使用read(char[] ch,int off,int length)这和处理二进制文件的时候类似,不多说了。如果使用InputStreamReader来读取文件的时候

while((ch = isr.read())!=-1)
{
System.out.print((char)ch);
}

这和FileReader并没有什么区别,事实上在FileReader中的方法都是从InputStreamReader中继承过来的。read()方法是比较好费时间的,如果为了提高效率我们可以使用BufferedReader对Reader进行包装,这样可以提高读取得速度,我们可以一行一行的读取文本,使用readLine()方法。

BufferedReader br =
new BufferedReader(new InputStreamReader
(new FileInputStream(“ming.txt”)));
String data = null;
while((data = br.readLine())!=null)
{
System.out.println(data);
}

当你明白了如何用Reader来读取文本文件的时候那么用Writer写文件同样非常简单。有一点需要注意,当你写文件的时候,为了提高效率,写入的数据会先放入缓冲区,然后写入文件。因此有时候你需要主动调用flush()方法。与上面对应的写文件的方法为:

FileWriter fw = new FileWriter(“hello.txt”);
String s = “hello world”;
fw.write(s,0,s.length());
fw.flush();

OutputStreamWriter osw = new
OutputStreamWriter(new FileOutputStream
(“hello2.txt”));
osw.write(s,0,s.length());
osw.flush();

PrintWriter pw = new PrintWriter
(new OutputStreamWriter(new FileOutputStream
(“hello3.txt”)),true);
pw.println(s);

不要忘记用完后关闭流!下面是个小例子,帮助新手理解。其实有的时候Java的IO系统是需要我们多记记的,不然哪天就生疏了。

hello world i like Java language
  
import Java.io.*;
  
public class TestFile2
{
public static void main(String[] args)
throws IOException
{
FileReader fr = new FileReader(“ming.txt”);
char[] buffer = new char[1024];
int ch = 0;
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch);
}
  
InputStreamReader isr = new InputStreamReader
(new FileInputStream(“ming.txt”));
while((ch = isr.read())!=-1)
{
System.out.print((char)ch);
}
  
BufferedReader br = new BufferedReader
(new InputStreamReader(new FileInputStream
(“ming.txt”)));
String data = null;
while((data = br.readLine())!=null)
{
System.out.println(data);
}
  
FileWriter fw = new FileWriter
(“hello.txt”);
String s = “hello world”;
fw.write(s,0,s.length());
fw.flush();
  
OutputStreamWriter osw =
new OutputStreamWriter
(new FileOutputStream(“hello2.txt”));
osw.write(s,0,s.length());
osw.flush();
  
PrintWriter pw = new PrintWriter
(new OutputStreamWriter(new FileOutputStream
(“hello3.txt”)),true);
pw.println(s);
  
fr.close();
isr.close();
br.close();
fw.close();
osw.close();
pw.close();
}
}(end)
文章内容仅供参考 (投稿) (如果您是本文作者,请点击此处) (5/11/2005)
查看更多电脑/软件/周边产品相关文章: more
·基于中间件的MES构件的研究及其实现 newmaker (5/10/2005)
·Atlas P54大幅面彩色扫描仪简介 CONTEX (5/9/2005)
·2005年桌面级防病毒软件横向评测 离子翼信息安全实验室 (5/9/2005)
·嵌入式车载计算机设计 泛亚汽车技术中心 雍建军 张超 魏燕钦 (5/8/2005)
·谈打印网络化-识别及选型要素 施乐中国公司应用方案顾问 李伟 (5/8/2005)
·国产中间件的八大关键词 newmaker (5/8/2005)
·对计算机技术中的十个重要关系的剖析 亿唐信息技术服务有限公司 倪宏伟 (5/6/2005)
·立足于中间件 迎接美好的SOA时代 newmaker (5/2/2005)
·实时嵌入式系统模型校验技术概述 Tata Girish, Keshav Palshikar (5/2/2005)
·全国首家正版软件卖场生死未卜 newmaker (5/2/2005)
查看相关文章目录:
·ERP/制造业信息化展区 > 电脑/软件/周边产品展厅 > 电脑/软件/周边产品文章
文章点评 查看全部点评 投稿 进入贴吧


对 电脑/软件/周边产品 有何见解?请到 电脑/软件/周边产品论坛 畅所欲言吧!


网站简介 | 企业会员服务 | 广告服务 | 服务条款 | English | Showsbee | 会员登录  
© 1999-2024 newmaker.com. 佳工机电网·嘉工科技