Java中,I/O操作代表着输入、输出,Java所有的I/O机制都是基于数据流进行输入输出。java.io类包提供了很多的输入输出处理功能方法,大家可以参考下JDK文档中关于I/O的一些处理方法:JDK在线中文文档。
数据流是一串连续不断的数据的集合,在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之一。
其他的输入输出流这里不一一详述了,使用大都是一样的,大家可以自己尝试编写实例验证。