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 手册中这样说缓冲流: 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取.可以指 ...
随机推荐
- 把域名绑定到某个项目,以nginx服务器为例
一:登陆域名服务器平台,把域名解析到项目对应的IP上面. 二:配置nginx服务器 1./etc/nginx/conf.d/ 在服务器该目录下,添加.conf文件,如命名为:www.demo.com. ...
- mac显示隐藏文件
苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令. 显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写): 第一种 显示Mac隐藏文件的命 ...
- VBA笔记(三)——常用对象
VBA实际上就是操作Excel,把Excel进行拆解,划分多层对象,由顶至下为(也可以说是层层包裹): Application:代表Excel程序本性,之后我们操作对象都在它之下,因为是唯一且至高点, ...
- AngularJS2.0 教程系列(一)
http://my.oschina.net/u/2275217/blog/482178
- mac os 如何加载 Java Native/Shared Library (.jnilib)
1 . 问题描述 今天在开发 Java 解压.z 文件的时候 需要加载 .jnilib 文件. 总是提示 Native code library failed to load. java.lang.U ...
- 修改Centos 6.5的yum源
1.进入目录 cd /etc/yum.repos.d/ 2.保持副本 mv CentOS-Base.repo CentOS-Base.repo.backup 3.下载新的CentOS-Base.rep ...
- 关于C#中的 static
一:感受 做商业项目才能更深刻和彻底的探索到技术的原理与真实面貌.以前在学校里面的时候这些C Sharp的基本语法,数据结构,面向对象背的滚瓜乱熟,那真得是背的!无论是从概念从理论上面来谈还是写一个小 ...
- MySQL 优化数据库对象
一.考虑是用 procedure analyse() 函数对当前应用的表进行分析.字段类型是否可优化. 二.通过拆分提高表的访问效率. (A) 针对MyISAM表,有两种拆分方法: 垂直拆分:主码和某 ...
- POJ1002
转化为七位数字 #include<iostream> #include<map> #include<cstring> #include<cstdio> ...
- getchar()(转)
出处:http://www.cnblogs.com/jiangjun/archive/2012/05/16/2503676.html 1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf( ...