基本读写操作方式
//读
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);