IO流
来源:互联网 发布:js copy对象 编辑:程序博客网 时间:2024/06/03 23:37
//列出file的一些常用操作比如过滤,历遍等操作
//列出指定目录下的文件名
File dir
String[] filenames=dir.list(); list方法用于列出当前目录下的子目录和文件
for(String string :filenames)
{
System.out.println(string);
}
//如果要遍历子目录下的所有内容就需要构造File对象做递归操作,File提供了直接返回File对象的API
File[] files=dir.listFile();
for(File file:files)
{
if(file.isDirectory){
listDirectory(file); //递归 listDirectory是自己写的方法;
}else{
system.out.println(file);
}
}
//RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
1)java 文件模型
在硬盘上的文件是byte byte byte存储的,是数据的集合
2)打开文件
有两种模式”rw“(读写)”r“(只读)
RandomAccessFile raf=new RandomAccessFile(file,”rw“)
文件指针,打开文件时指针在文件开头 pointer=0;
3)写方法
raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
4)读方法
int b=raf.read()--->只读一个字节
5)文件读写完成以后一定要关闭(oracle官方说明)
IO流(输入流,输出流)
字节流,字符流
1.字节流
1)inputStream,outputStream
inpStream抽象了应用程序读取数据的方式
outputStream抽象了应用程序写出数据的方式
2)EOF=End 读到-1就读到结尾
3)输入流的基本方法
int b=in.read();读取一个字节无符号填充到int低八位。-1是EOF
in.read(byte[] buf) 读取数据到字节数组buf中
in.read(byte[] buf,0,buf.length)放到buf这个数组中,从第0个位置开始放,最多放buf.length个,返回的是读到字节的个数
4)输出流的基本方法
out.write(int b) 写出一个字节到流,b的低8位
out.write(byte[] buf) 将buf字节数组写入到流
out.write(byte[] buf,0,buf.length)
5)FileInputStream继承inputStream--->具体实现了在文件上读取数据
6)FileOutputStream继承outputStream--->实现了在文件中写出byte数据的方法
7)DataOutputStream/DateInputStream--->对‘流’功能的一个扩展,可以更方便的读取int,long,字符等类型的数据
DataOutputStream
writeInt()/writeDouble()/writeUTF();
String file="demo/dos.dat";
DataOutputStream dos=new DataOutputStream(
new FileOutputStream(File))
8)BufferInputStream/BufferoutputStream
这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入
或读取操作时,都会加上缓冲,这种流模式提高了IO的性能
从应用程序中把输入放入文件,相当于将一缸水倒入另一个缸中:
FileOutputStream--->write方法相当于一滴一滴地把水”转移过去“ 批量字节读取最快
DataOutputStream--->writeXxx()方法会方便一些,相当于一瓢一瓢把水”转移“
BufferoutputStream--->writeXxx()更方便一些,相当于一瓢一瓢先放入桶中,再从桶倒入到缸中,性能提高了
2.字符流
1)编码问题
2)认识文本文件
java的文本(char)是16位无符号整数,是字符unicode编码(双字节编码)
文件是byte byte byte...的数据序列
文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储
3)字符流(Rread Write)
字符的处理,一次处理一个字符
字符的底层任然是字节序列
字符流的基本实现
InputStreamReader 完成byte流解析为char流,按照编码解析
OutputStreamReader 提供char流到byte流,按照编码处理
FileRead/FileWrite 构造更简便
字符流过滤器
BufferedReader --->一次读一行
BufferedWrite/PrintWriter --->一次写一行 不能识别换行,需单独写出newLine();
//列出指定目录下的文件名
File dir
String[] filenames=dir.list(); list方法用于列出当前目录下的子目录和文件
for(String string :filenames)
{
System.out.println(string);
}
//如果要遍历子目录下的所有内容就需要构造File对象做递归操作,File提供了直接返回File对象的API
File[] files=dir.listFile();
for(File file:files)
{
if(file.isDirectory){
listDirectory(file); //递归 listDirectory是自己写的方法;
}else{
system.out.println(file);
}
}
//RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
1)java 文件模型
在硬盘上的文件是byte byte byte存储的,是数据的集合
2)打开文件
有两种模式”rw“(读写)”r“(只读)
RandomAccessFile raf=new RandomAccessFile(file,”rw“)
文件指针,打开文件时指针在文件开头 pointer=0;
3)写方法
raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
4)读方法
int b=raf.read()--->只读一个字节
5)文件读写完成以后一定要关闭(oracle官方说明)
IO流(输入流,输出流)
字节流,字符流
1.字节流
1)inputStream,outputStream
inpStream抽象了应用程序读取数据的方式
outputStream抽象了应用程序写出数据的方式
2)EOF=End 读到-1就读到结尾
3)输入流的基本方法
int b=in.read();读取一个字节无符号填充到int低八位。-1是EOF
in.read(byte[] buf) 读取数据到字节数组buf中
in.read(byte[] buf,0,buf.length)放到buf这个数组中,从第0个位置开始放,最多放buf.length个,返回的是读到字节的个数
4)输出流的基本方法
out.write(int b) 写出一个字节到流,b的低8位
out.write(byte[] buf) 将buf字节数组写入到流
out.write(byte[] buf,0,buf.length)
5)FileInputStream继承inputStream--->具体实现了在文件上读取数据
6)FileOutputStream继承outputStream--->实现了在文件中写出byte数据的方法
7)DataOutputStream/DateInputStream--->对‘流’功能的一个扩展,可以更方便的读取int,long,字符等类型的数据
DataOutputStream
writeInt()/writeDouble()/writeUTF();
String file="demo/dos.dat";
DataOutputStream dos=new DataOutputStream(
new FileOutputStream(File))
8)BufferInputStream/BufferoutputStream
这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入
或读取操作时,都会加上缓冲,这种流模式提高了IO的性能
从应用程序中把输入放入文件,相当于将一缸水倒入另一个缸中:
FileOutputStream--->write方法相当于一滴一滴地把水”转移过去“ 批量字节读取最快
DataOutputStream--->writeXxx()方法会方便一些,相当于一瓢一瓢把水”转移“
BufferoutputStream--->writeXxx()更方便一些,相当于一瓢一瓢先放入桶中,再从桶倒入到缸中,性能提高了
2.字符流
1)编码问题
2)认识文本文件
java的文本(char)是16位无符号整数,是字符unicode编码(双字节编码)
文件是byte byte byte...的数据序列
文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储
3)字符流(Rread Write)
字符的处理,一次处理一个字符
字符的底层任然是字节序列
字符流的基本实现
InputStreamReader 完成byte流解析为char流,按照编码解析
OutputStreamReader 提供char流到byte流,按照编码处理
FileRead/FileWrite 构造更简便
字符流过滤器
BufferedReader --->一次读一行
BufferedWrite/PrintWriter --->一次写一行 不能识别换行,需单独写出newLine();
0 0
- 【IO流】IO框架
- IO流呀IO流
- 字符IO&数据流IO&对象流IO
- io流
- io流
- IO流
- IO流
- IO 流
- IO流
- io流
- IO流
- io流
- IO流
- IO流
- IO流
- IO流
- IO流
- IO流
- http://blog.csdn.net/fjb2080/article/details/7969832
- MATLAB工具箱路径缓存
- TFTP&NFS 的配置
- 解决头文件定义变量的问题,巧用宏定义(续)
- 工厂模式
- IO流
- install hadoop in fedora
- linux 概念之pid tid区分
- php实现自动加载类
- C++STL之String详解
- 简单算法
- Cogs 763. [USACO Open09] 数字的游戏(博弈)
- 使用 JavaScript 下载文件
- 图像定位(一)、坐标变换