[Java基础笔记]读写部分

本文介绍了Java中的基本读写操作,包括使用Reader、Writer及其子类进行文件读写的方法,并详细讲解了如何通过不同途径读取图像文件及利用进度对话框实现流读取的进度监控。

基本读写操作方式

//读
Reader->InputStreamReader->FileReader
//写
Writer->OutputStreamWriter->FileWriter

缓冲区

建立缓冲区对象前要先有流对象存在,即在使用流对象方法时加入数组对数据的临时存储


读取图像

从URL中读入:

URL url = 类.class.getResource(路径);
Image img = Toolkit.getDefaultToolkit().getImage(url);

从流中读入:

InputStream in = ...;
ImageInputStream im = ImageIO.createImageInputStream(in);
ImageReader reader = new reader ImageReader();
reader.setInput(im,true);
BufferedImage ima = reader.read(index);

从文件读取:

File f = ...;
ImageInputStream im = ImageIO.createImageInputStream(f);
ImageReader reader = new reader ImageReader();
reader.setInput(im);
BufferedImage ima = reader.read(index);

处理文件

InputStream in = Files.newInputStream(路径);
OutputStream out = Files.newOutputStream(路径);
//读
Reader rin = Files.newBufferedReader(路径,charset);
//写
Writer wout = Files.newBUfferedWriter(路径,charset);

剪切板使用

Clipboard cp = Toolkit.getDefaultToolkit().getSystemClipboard();
//读取
DataFlavor fla = DataFlavor.stringFlavor;
if(Clipboard.isDataFlavorAvailable(fla)){
	String text = (String)Clipboard.getData(fla);}
//写入
String text = ...;
StringSelection se = new StringSelection(text);
cp.setContents(se,剪切板所有者/null);

读写zip

//遍历zip的项
ZipInputStream zin = new ZipInputStream(new FileInputStream(zipname));
ZipEntry entry;
while((entry = zin.getNextEntry())!=null){
	...
	zin.CloseEntry();}
zin.close();

//读zip的内容
Scanner sc = new Scanner(zin);
while(in.hasNextLine()){
	...
	in.nextline();}

//写zip的内容
ZipOutputStream zout = new ZipOutputStream(zipname);
循环{
	ZipEntry ze = new ZipEntry(filename);
	zout.putNextEntry(ze);
	...
	zout.closeEntry();}
zout.close();

进度对话框

//第一步,构造进度监视器
ProgressMonitor pd = new ProgressMonitor(..,0,100);
//第二步,创建定时器
Timer ti = new Timer(时间,XXListener);
//第三步,启动
ti.start();
pd.setProgress(..); 

监视输入流进度

//第一步,创建文件输入流
FileInputStream in = new FileInputStream(...);
//第二步,创建输入流进度监视
ProgressMonitorInputStream prIn = new ProgressMonitorInputStream(父级,标题,in);
//第三步,输入流读取
InputStreamReader rd = new InputStreamReader(prIn);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值