11级_Java_曹建波5.15 Java流与文件操作
来源:互联网 发布:乌鲁木齐网络赛 编辑:程序博客网 时间:2024/04/27 13:43
Java流与文件操作
IO(Input Output)流
IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式
Java用于操作流的对象都在IO包中
流按操作数据分为两种:字节流与字符流。
流按流向分为:输入流,输出流。
IO流常用基类
字节流的抽象基类:
InputStream ,OutputStream。
字符流的抽象基类:
Reader , Writer。
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader。
IO程序的书写
导入IO包中的类
进行IO异常处理
在finally中对流进行关闭
字符流——创建文件
创建流对象,建立数据存放文件
FileWriter fw = new FileWriter(“Test.txt”);
调用流对象的写入方法,将数据写入流
fw.write(“text”);
关闭流资源,并将流中的数据清空到文件中。
fw.close();
FileWriter fw = null;
try{
fw= new FileWriter("Test.txt");
fw.write("text");
}
catch(IOException e){
System.out.println(e.toString());
}
finally{
If(fw!=null)
try{
fw.close();
}
catch(IOException e){
System.out.println(e.toString());
}
}
字符流——读取文件
建立一个流对象,将已存在的一个文件加载进流。
FileReader fr = new FileReader(“Test.txt”);
创建一个临时存放数据的数组。
char[] ch = new char[1024];
调用流对象的读取方法将流中的数据读入到数组中。
fr.read(ch);
FileReader fr = null;
try{
fr= new FileReader("c:\\test.txt");
char[]buf = new char[1024];
intlen= 0;
while((len=fr.read(buf))!=-1){
System.out.println(newString(buf,0,len));
}
}
catch(IOException e){
System.out.println("read-Exception:"+e.toString());
}
finally{
if(fr!=null){
try{
fr.close();
}
catch(IOException e){
System.out.println("close-Exception:"+e.toString());
}
}
}
定义文件路径时,可以用“/”或者“\\”。
在创建一个文件时,如果目录下有同名文件将被覆盖。
在读取文件时,必须保证该文件已存在,否则出异常。
字符流的缓冲区
缓冲区的出现提高了对数据的读写效率。
对应类
BufferedWriter
BufferedReader
缓冲区要结合流才可以使用。
在流的基础上对流的功能进行了增强。
装饰设计模式
对原有类进行了功能的改变,增强。
装饰模式的基本格式。
字节流
基本操作与字符流类相同
但它不仅可以操作字符,还可以操作其他媒体文件
Copy一个Jpg文件。
import java.io.*;
public class StreamCopy {
/**
* @param args
*/
publicstatic void main(String[] args) throws IOException {
BufferedInputStreambufis=new BufferedInputStream(new FileInputStream("E:\\娱乐\\图片\\素材\\L.jpg"));
BufferedOutputStreambufos=new BufferedOutputStream(new FileOutputStream("res\\1.jpg"));
/*intby=bufis.read();
while(by!=-1){
bufos.write(by);
by=bufis.read();
}*/
intby=0;
while((by=bufis.read())!=-1){
bufos.write(by);
}
bufos.close();
bufis.close();
}
}
字节流的缓冲区
同样是提高了字节流的读写效率。
转换流
InputStreamReader,OutputStreamWriter
转换流的由来
字符流与字节流之间的桥梁
方便了字符流与字节流之间的操作
转换流的应用
字节流中的数据都是字符时,转成字符流操作更高效。
RandomAccessFile
随机访问文件,自身具备读写的方法。
通过skipBytes(intx),seek(int x)来达到随机访问。
转换流
InputStreamReader 从字节转为字符
OutputStreamWriter 从字符转为字节 可以添加编码
要求:从键盘录入一行数据,如果遇到over,程序结束。
(否则,转成大写打印输出)
否则,转成大写保存到文件中
流的基本操作:
1.明确数据源和数据目的,确定使用输入流还是输出流
2.明确操作的数据是否是纯文本
是 使用字符流
否 使用字节流
Reader Writer FileReader FileWriter Buffered
InputStream OutputStream
输入(读):System.in File
输出(写):Systme.out File
- 11级_Java_曹建波5.15 Java流与文件操作
- 11级_Java_曹建波5.10 Java流与文件操作
- 11级_Java_曹建波 11.29 文件上传
- 11级_Java_曹建波 11.30 文件下载
- 11级_Java_曹建波4.26 集及其实现类&枚举器与数据操作
- 11级_Java_曹建波5.10 字符流
- 11级_Java_曹建波5.14 字节流
- 11级_Java_曹建波 03.02 Struts2_事物管理&文件上传
- 11级_Java_曹建波 11.09 JavaBean与Jsp
- 11级_Java_曹建波3.26 Java 第一节环境的搭载
- 11级_Java_曹建波3.27 Java第二天
- 11级_Java_曹建波4.19 精通常用的Java类
- 11级_Java_曹建波4.25 Java中的集合类
- 11级_Java_曹建波4.27 Java中的泛型编程
- 11级_Java_曹建波 9.11 Java网络编程
- 11级_Java_曹建波 9.17 Java SE 加强
- 黑马程序员_java_文件操作总结
- 11级_Java_曹建波5.23 命令行操作表数据&SHOW和DESCRIBE语句
- x86系统引导(3)
- Android ApiDemos示例解析(4):App->Activity->Custom Dialog
- AccessDatabaseEngine——让未安装OFFICE2007的计算机使用accdb
- linux系统C语言学习总结
- 第十三周实验报告2
- 11级_Java_曹建波5.15 Java流与文件操作
- AIR文件操作(三):使用FileStream对象读写文件
- 实验报告2
- jsp连接数据库的规范总结
- Liux根文件系统的构建
- 几种常见博弈
- USB驱动(一)
- 13 周 任务四 设计抽象类
- 实验报告<幻方,数组的排序和向数组中插入某个数>