IO操作

本文介绍了Java中使用File类操作文件及目录的方法,并通过实例演示了如何利用InputStream与OutputStream完成文件拷贝,同时展示了PrintWriter与Scanner等类在数据输出与输入方面的应用。

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

1.File可以操作文件以及创建文件目录

2.OutputStream与InputStream主要操作字节数据,以文件拷贝为主

3.如果程序输出数据使用PrintWriter(PrintStream),输入数据用Scanner(BufferedReader);

package cn.niyulu.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class Test {
	public static void main(String[] args) throws Exception {
		File inFile = new File("D:"+File.separator+"hello.jpg");//输入路径
		File outFile = new File("D:"+File.separator+"my.jpg");//输出路径
		if(!outFile.getParentFile().exists()) {//必须考虑目录问题
			outFile.getParentFile().mkdirs();
		}
		InputStream input = new FileInputStream(inFile);
		OutputStream output = new FileOutputStream(outFile);
		byte data[] = new byte[2048];//每次读取的数据量
		int temp = 0;//保存读取的长度
		while((temp = input.read(data))!=-1) {
			output.write(data, 0, temp);
		}
		output.flush();
		output.close();
		input.close();
	}
}
虽然OutputStream.InputStream.Writer.Reader可以实现数据的输入与输出操作,但是功能上有缺陷,只能以字节数组或者是字符数组的形式进行操作,但是对于其他的数据类型,这样的操作就不方便了

输出数据使用打印流

package cn.niyulu.io;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Test {
	public static void main(String[] args) throws Exception {
		File file = new File("D:"+File.separator+"out.txt");
		if(!file.getParentFile().exists()) {
			file.getParentFile().mkdirs();
		}
		PrintStream out = new PrintStream(new FileOutputStream(file));
		out.print("倪裕禄大帅哥!\r\n倪裕禄小帅哥!\r\n倪裕禄中帅哥!");
		out.flush();
		out.close();
	}
}
运行结果


数据的输入

package cn.niyulu.io;
import java.io.File;
import java.io.FileInputStream;
import java.util.Scanner;
public class Test {
	public static void main(String[] args) throws Exception {
		File file = new File("D:"+File.separator+"out.txt");
		Scanner scan = new Scanner(new FileInputStream(file));
		scan.useDelimiter("\n");
		while(scan.hasNext()) {
			System.out.print(scan.next());
		}
		scan.close();
	}
}

运行结果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值