您的位置:首页 > 其它

给学弟学妹的IO流教程

2015-11-25 21:40 225 查看

对IO的一些介绍

流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出,比如一张图片,一个txt文本。

流分为输入流( I )和输出流( O ),还可以分为字符流和字节流。

输入流:操作从文本读取数据输入到流中

输出流:操作从流中输出数据输入到文本

字符流:以字符的形式进行输入输出(长用于文本操作)

字节流:以字节的形式进行输入输出(处理图片之类)

InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。

OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。

Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。

Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。

常见流:





通过property文件连接数据库

上次讲jdbc的时候,大家只是了解了用代码来连接数据库,现在我结合IO相关的知识来提供另外一种方法。



首先新建property文件jdbc.properties,文件中放入以下内容

jdbcDriver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/test
jdbcUserName=root
jdbcPassWord=root


在你们的jdbcUtil类中加入以下代码

Properties pro=new Properties();//用于操作properties
FileInputStream fis;//从文件读取输入到流
try {
fis = new FileInputStream(new File("src/jdbc.properties"));
pro.load(fis);
System.out.println(pro.getProperty("jdbcDriver"));
System.out.println(pro.getProperty("jdbcUrl"));
System.out.println(pro.getProperty("jdbcUserName"));
System.out.println(pro.getProperty("jdbcPassWord"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


控制台输出结果如下

com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test
root
root


通过property文件配置会在以后修改数据库配置的时候更加方便。

图片的读取和写入

一个从F盘操作图片,移动到其他地方的例子。

try {
File fileFrom = new File("F:/in.gif");//移动的文件
File fileTo =new File("D:/aa.gif");   //放的位置
InputStream is = new FileInputStream(fileFrom);//创建输入流
OutputStream os=new FileOutputStream(fileTo);   //创建输出流
byte[] buffer = new byte[1024];                 //一个用于保存字节的数组
int hasRead = 0;
// 从输入流中读取数据放入到字节数组中,
while ((hasRead=is.read(buffer))!=-1) {
//System.out.println(new String(buffer, 0, hasRead));
//这里可以将它输出下,看看控制台有些什么东西
os.write(buffer);           //从流中写入数据到本地
}
is.close();
os.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

----------
如有问题或者需要添加什么可以留言。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: