Java中,I/O操作代表着输入、输出,Java所有的I/O机制都是基于数据流进行输入输出。java.io类包提供了很多的输入输出处理功能方法,大家可以参考下JDK文档中关于I/O的一些处理方法:。
数据流是一串连续不断的数据的集合,在Java中常见的基本流一般指:InputStream、OutputStream、Reader、Writer这四个,其他的都是他们派生出来的子类。他们之间也是有区别的:InputStream、OutputStream是处理8位的字节流数据,Reader、Writer是处理16位的字符流数据,相互间可以转化,这里不做详述了。
数据流的使用多见于文件操作,如文件的读写,下面就以文件操作来说下I/O。
文件File类提供了很多的方法可以获取指定文件的属性,如文件大小、修改时间等,而在Java中文件和文件夹都是统一由File进行管理,所以提供了isFile()和isisDirectory()方法来判断是否为文件或文件夹。下面通过一个实例来熟悉下其中一种读写操作:
/** 替换文本文件内容*/File file = new File("D:\\Yoki\\a.txt");FileReader fir = null;FileWriter fiw = null;StringBuilder sBuilder = new StringBuilder();char[] temp = new char[1024];if(file != null){ try { //创建文件读流 fir = new FileReader(file); //读入文件中的内容 while((fir.read(temp))!=-1){ sBuilder.append(temp); } //替换字符串 String str = sBuilder.toString().replace("on", "in"); //创建文件写流 fiw = new FileWriter(file); fiw.write(str); }catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); }finally{ try { //释放资源 fiw.close(); fir.close(); }catch (IOException e) { e.printStackTrace(); } }}
运行后可以看到文本文件中的字符串已被替换了。上面的实例中需要注意几点:文件类File的使用,流的创建使用,资源释放的问题,try-catch代码块捕获异常等。
在读取文本文件时,可以使用BufferReader类,它的readLine()方法可以方便的从文件中读入一行数据,返回读入的字符串,声明如下:
public String readLine() throws IOExceptoin
注意:在向MYSQL中保存图片时,数据库表中对应字段的类型应该是TINYBLOB、BLOB、MEDIUMBLOB或者LONGBLOB之一。
其他的输入输出流这里不一一详述了,使用大都是一样的,大家可以自己尝试编写实例验证。