给学弟学妹的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(); } ---------- 如有问题或者需要添加什么可以留言。
相关文章推荐
- hdu 1437 天气情况【概率DP】
- 【nginx】负载均衡和proxy的配置
- lamp配置(ubuntu sever)
- hdu2586How far away ?【LCA tarjan求最短距离】
- PHP flock 文件锁详细介绍
- 使用visibility属性在Tabhost里实现更改Tabs的内容
- [Ubuntu] Acer V5-471G关机后重新启动问题,无法关机
- 湖南工业大学创新实验室2015年新生赛(一)1009(重开)
- 在mac系统安装Apache Tomcat的详细步骤(转载自himi的博客,修改了错误添加了图片)
- Linux-epoll
- PAT 1092. To Buy or Not to Buy (20)
- ubuntu下激活matlab
- 欧拉角pitch、yaw,roll的理解
- 【C语言】 函数指针小谈
- java dfs
- 最短路径——Floyd算法
- 备忘录模式实现画图板撤销操作
- Squares
- 使用JSONModel小记
- ---frame---收尾式动画---枚举