java学习系列(一)Java中的IO操作
Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入\输出操作,在Java中把不同的输入\输出源抽象为"流",通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收(sink)的有序数据。
Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入\输出功能。

JavaAPI 1.6中java.io包
1.子节流
* 输入字节流
* -------------|InputStream 所有输入字节流的基类,抽象类
* -----------------|FileInputStream 读取文件的输入字节流。
* ----------------|BufferedInputStream 缓冲输入字节流。该类内部其实就是维护了一个8Kb字节数组。该类的出现的买的就是提高读取文件数据的效率。
* 输出字节流
* -------------OutputStream 所有输出字节流的基类,抽象类
* -----------------|FileInputStream 写入文件的输出字节流
* -----------------|BUfferedOutputStream 缓冲写入字节流。该类的内部同样维护了一个8kb的字节数组。提高文件写入效率。
*
2.字符流
* 字符流 = 字节流 + 编码
* 输入字符流
* ------------|Reader 所有输入字符流的基类,抽象类
* ----------------|FileReader 读取文件字符的输入字符流
* ----------------|BufferedReader 缓冲输入字符流。该类的内部同样维护一个8192长度的字符数组.
* 输出字符流
* ------------|Writer 所有输出字符流的基类,抽象类
* ----------------|FileWriter 写入文件字符的是输出字符流
* ----------------|BufferedWriter 缓冲输出字符流。该类的内部同样维护一个8192长度的字符数组。
*
3. 转换流:
*输入转换流的基类InputStreamReader
*输出转换流的基类OutputStreamWriter
*转换流的作用:可以将对应的字节流转换成字符流使用;可以指定码表进行文件的数据.
4.一个实例,移动文件
public static void copy(String src, String desc) throws Exception {
File srcFile = new File(src);
File descFile = new File(desc);
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(srcFile);
out = new FileOutputStream(descFile);
int len = -1;
byte[] bytes = new byte[1024 * 1024];
while ((len = in.read(bytes)) != -1) {
out.write(bytes, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
in.close();
out.close();
}
}
}
2016-05-10 gongchao1212
java学习系列(一)Java中的IO操作的更多相关文章
- Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
俗话说:“十五的月亮十六圆”.那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的.记得马云曾说:今天很残酷,明天更残酷,后天 ...
- Java学习-040-级联删除目录中的文件、目录
之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除.网上找了一些方法,也找了一些粉碎机,都没能达到 ...
- Java中的IO操作和缓冲区
目录 Java中的IO操作和缓冲区 一.简述 二.IO流的介绍 什么是流 输入输出流的作用范围 三.Java中的字节流和字符流 字节流 字符流 二者的联系 1.InputStreamReader 2. ...
- .net reactor 学习系列(三)---.net reactor代码自动操作相关保护功能
原文:.net reactor 学习系列(三)---.net reactor代码自动操作相关保护功能 接上篇,上篇已经学习了界面的各种功能以及各种配置,这篇准备学习下代码控制许可证. ...
- .NET中的IO操作基础介绍
关于IO简介 .NET中的IO操作,经常需要调用一下几个类. clipboard[] .FileStream类 文件流类,负责大文件的拷贝,读写. .Path类 Path类中方法,基本都是对字符串(文 ...
- Java NIO学习系列四:NIO和IO对比
前面的一些文章中我总结了一些Java IO和NIO相关的主要知识点,也是管中窥豹,IO类库已经功能很强大了,但是Java 为什么又要引入NIO,这是我一直不是很清楚的?前面也只是简单提及了一下:因为性 ...
- 【Java学习系列】第3课--Java 高级教程
本文地址 可以拜读: 从零开始学 Java 分享提纲: 1. Java数据结构 2. Java 集合框架 3. Java泛型 4. Java序列化 5. Java网络编程 6. Java发送Email ...
- 【Java学习系列】第2课--Java语法及面向对象
本文地址 分享提纲: 1. Java程序特点 1.1 基本语法 1.2 字符串 1.3 变量 1.4 Java数组 1.5 Java枚举 1.6 Java修饰符 1.7 Java编译制定在制定目录 2 ...
- java中的IO操作总结
一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnect ...
随机推荐
- ASP.NET设置404页面返回302HTTP状态码的解决方法
在配置文件中配置404页面如下: .代码如下: <customErrors mode="On" defaultRedirect="404.aspx"> ...
- JedisPool连接池实现难点
[http://jiangwenfeng762.iteye.com/blog/1280700] [可改进的问题] 问题是jedispool有没有办法监控状态,比如说当前连接有多少,当前idle连接 ...
- 如何在微博侧栏中加入自己的微博[js]
<div class="box"> <ul> <li> <object classid="clsid:D27CDB6E-AE6D ...
- Putty 工具 保存配置的 小技巧
用Putty 已经很长时间了,但一直被一个问题困扰,有时候是懒得去弄,反正也不怎么碍事,今天小研究了下,把这个问题解决了,心里也舒服了. Putty是一个免费小巧的Win32平台下的telnet,rl ...
- Cortex-M3 Context Switching
http://www.embedded.com/design/embedded/4231326/Taking-advantage-of-the-Cortex-M3-s-pre-emptive-cont ...
- 哈希表(Hash)的应用
$hs=@() #定义数组 $hs=@{} #定义Hash表,使用哈希表的键可以直接访问对应的值,如 $hs["王五"] 或者 $hs.王五 的值为 75 $hs=@''@ #定义 ...
- C++之类型转换
说明:本文仅供学习交流,转载请标明出处,欢迎转载! 实现将A类的对象转换为B类对象的方法有3种:(A类对象<-------B类对象) 方法一:如果A为基类,B为派生类,能够将派生类的对象转 ...
- 四月二十五日,bugzilla for CentOS 安装
Bugzilla for CentOS 5.4 制作人,陈浩 时间:2014.4.25 原创 文件夹 Bugzilla for CentOS 5.4 一. 装系统 1) 新建虚拟机 15G硬盘,51 ...
- C++字节对齐问题
关于C++字节对齐问题 关于C/C++的字节对齐 这两天写解析SWF文件的程序,在结构体指针和从文件里读出来的进行转换的时候遇到一些问题,就是有一个struct A,比如: struct A { ch ...
- Cocos2D-x权威指南:通过节点控制屏幕中的全体渲染对象
本节,已经能够利用我们眼下所学的知识做出一些有趣的东西.之前已经说过,CCNode类没有贴图,也就是说在屏幕上单独建立一个节点是没有不论什么效果的,可是能够通过这个"无形"的节点来 ...