java io操作_java IO操作

本文介绍Java7中自动资源管理(ARM)特性,演示如何利用FileReader、FileWriter、FileInputStream及FileOutputStream等类进行文件的读写操作,并推荐使用PrintStream和PrintWriter简化输出流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java7中引入自动资源管理(ARM),使用try(){}catch{}finally{},()中的资源会在程序运行后自动释放。

文件流分为输入流和输出流,典型用法

FileReader fr = new FileReader("poem.txt");           //读取已有文件

FileWriter fw = new FileWriter("newPoem2.txt");   //向特定名文件写入(不存在先创建),覆盖

char[] cbuf = new char[32];                   //Reader和Writer读写以字符为单位

int hasRead = 0;              //返回一次读取数

while ((hasRead = fr.read(cbuf)) > 0)

{

fw.write(cbuf,0,hasRead);

}

FileInputStream fis = new FileInputStream("poem.txt");

FileOutputStream fos = new FileOutputStream("newPoem.txt"))

byte[] bbuf = new byte[32];                //InputStream和OutputStream读写以字节为单位

int hasRead = 0;

while ((hasRead = fis.read(bbuf)) > 0)

{

fos.write(bbuf,0,hasRead);

}

java建议称,处理流PrintWriter功能比较强大,建议将输出流包装成PrintStream后进行输出,类似的将Writer包装成PrintWriter

FileInputStream fis = new FileInputStream("poem.txt");

FileOutputStream fos = new FileOutputStream("test.txt");

PrintStream ps = new PrintStream(fos);

FileReader fr = new FileReader("poem.txt");

FileWriter fw = new FileWriter("text.java");

PrintWriter pw = new PrintWriter(fw)

char[] cbuf = new char[32];

byte[] bbuf = new byte[32];

int hasRead = 0;

while ((hasRead = fis.read(bbuf))>0)

{

ps.write(bbuf,0,hasRead);

}

while ((hasRead = fr.read(cbuf)) > 0)

{

pw.write(cbuf,0,hasRead);

}

PrintStream、PrintWriter、BufferedReader

PrintStream用于处理字节流,PrintWriter用于处理字符流

其中bufferedReader的readLine()方法在读取数据时,在该方法成功返回之前,线程将一直阻塞,考虑到这个原因,当要实现多个文件并发读取时,应为每个读取过程启动一个线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值