Java 之 I/O流
1.流
a.分类:①字节流:InputStream、OutputStream
②字符流:Reader、Writer
b.选择:①判断是 输入 还是 输出 (站在程序的立场上)
②判断是 字节 还是 字符 (决定粗细)
c.注意:①字节管道是最根本的
②字符管道专门传输文本数据
c.应用:①序列化
②反序列化
2.文件拷贝——最重要的一段手工书写的代码
package com.lovo.test; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream; public class TestStream { public static void main(String[] args) { //功能:将D:/test.avi 拷贝到 F:/wudi.avi
FileInputStream fis = null;
FileOutputStream fos = null;
try {
//1、建立管道
fis = new FileInputStream("D:/test.avi");
fos = new FileOutputStream("F:/wudi.avi"); //2、操作管道
//方法一:
// int b = 0;
// while((b = fis.read()) != -1){
// fos.write(b);
// } //方法二:
byte[] b = new byte[1024];
int length = 0;//记录读取了多少个有效字节数
while((length = fis.read(b)) != -1){
fos.write(b,0,length);
fos.flush();//强制刷出缓冲区的内容
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
//3、关闭管道
if(fis != null){
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated block
e.printStackTrace();
}
}
if(fos != null){
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
3.序列化与反序列化
a.定义:①序列化:将内存中的对象以二进制流的形式输出
②反序列化:将输入的二进制对象流转换为内存中的对象 (第二种产生对象的方式)
b.Serializable关键字:
①定义:可序列化接口
②作用:标记性接口,只有实现了Serializable接口的类才能被序列化
③注意:集合对象都实现了接口Serializable,也可以进行直接进行序列化和反序列化
c.transient关键字:
transient关键字修饰的属性,其值不参与序列化
4.File 类
a.作用:来表示操作系统的文件或文件夹对象
b.方法:
①申明:
File f = new File("F:/dddd.data");
②其他:
String path1 = file.getAbsolutePath(); //获取绝对路径 String path2 = file.getPath(); //获取相对路径 long space = file.length(); //获取文件大小 long time = file.lastModified(); //最后修改时间(毫秒数) System.out.println(file.isHidden()); //判断是否是隐藏文件 System.out.println(file.canWrite()); //判断是否是能被修改 System.out.println(dir.isFile()); //判断是否是文件 System.out.println(file.isDirectory()); //判断是否是文件夹
c.文件分隔符——File.pathSeparator
String path = "D:" + File.pathSeparator +"ffdfd" + File.pathSeparator + "fdfdf";
d.文件夹对象的常用方法:
①得到文件夹下面的所有子文件或子文件夹的名字
String[] subFileNames = dir.list();
②得到文件夹下面的所有子文件或子文件夹的File对象
File[] subFiles = dir.listFiles();
Java 之 I/O流的更多相关文章
- java 字节流和字符流的区别 转载
转载自:http://blog.csdn.net/cynhafa/article/details/6882061 java 字节流和字符流的区别 字节流与和字符流的使用非常相似,两者除了操作代码上的不 ...
- java 21 - 12 IO流的打印流
打印流 字节流打印流 PrintStream 字符打印流 PrintWriter打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提 ...
- Java中的IO流系统详解(转载)
摘要: Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java ...
- java 字节流和字符流的区别
转载自:http://blog.csdn.net/cynhafa/article/details/6882061 java 字节流和字符流的区别 字节流与和字符流的使用非常相似,两者除了操作代码上的不 ...
- Java中的IO流系统详解
Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...
- java开发之IO流
一直对IO流记不清楚,从别的地方转过来. 看下图: 流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两 ...
- java中的IO流
Java中的IO流 在之前的时候我已经接触过C#中的IO流,也就是说集中数据固化的方式之一,那么我们今天来说一下java中的IO流. 首先,我们学习IO流就是要对文件或目录进行一系列的操作,那么怎样操 ...
- Java IO 文件与流基础
Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在 ...
- JAVA通过I/O流复制文件
JAVA通过I/O流复制文件 本文是对字节流操作,可以多音频视频文件进行操作,亲测有效. 个人感觉这个东西就是靠记的, 没什么好解释的,,,, import java.io.File; import ...
- java中的缓冲流BufferedWriter和BufferedReader
java中的缓冲流有BufferedWriter和BufferedReader 在java api 手册中这样说缓冲流: 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取.可以指 ...
随机推荐
- spring jdbc 查询结果返回对象、对象列表
首先,需要了解spring jdbc查询时,有三种回调方式来处理查询的结果集.可以参考 使用spring的JdbcTemplate进行查询的三种回调方式的比较,写得还不错. 1.返回对象(queryF ...
- easyUI的combobox是否可用
$('#ID').combobox('enable'); $('#ID').combobox('disable');
- Qt &QSS
Today task:解决了qt中的一些控件无法使用qss的问题(如QProgressDialog 调节chunk的颜色,QMessageBox按钮的颜色问题)1,对于QMessageBox,可以单独 ...
- ionic的常用命令总结以及正式发布的准备
常用命令: npm install -g ionic cordova(需要安装node) ionic start cutePuppyPics --v2(建app cutePuppyPics app名字 ...
- $q -- AngularJS中的服务(理解)
描述 译者注: 看到了一篇非常好的文章,如果你有兴趣,可以查看: Promises与Javascript异步编程 , 里面对Promises规范和使用情景,好处讲的非常好透彻,个人觉得简单易懂. ...
- MetInfo 5.1 自动化getshell工具
title: MetInfo V5.1 GetShell一键化工具 date: 2016-06-08 22:40:32 categories: Hacker tags: - Hacker - Tool ...
- saltstack命令执行过程
saltstack命令执行过程 具体步骤如下 Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc salt ...
- 001_SPL工作中总结
一.SPL字段搜索中value带双引号和不带双引号的区别 如:iis.cs_uri_stem:\/api\/Purchase\/Common\/* AND logtype:iis 和iis.cs_ur ...
- CAD的输出成高清jpg图片
打印名称选择JPG或者PNG 然后图纸尺寸选择大的 尺寸不够大就自己设置下 创建新图纸——设置下长宽——然后保存下名字,然后图纸尺寸选择你设置过的这个输出就好了 然后窗口下就好了
- 前后端分离中,Gulp实现头尾等公共页面的复用
前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...