课程名称:Java体系课
章节名称:通过I/O实现文件的读取与写入(上)
课程内容:
- I(输入)/O(输出)
- File类
- 通过字节字符流实现文件读取与写入
学习收获:
- I(输入)/O(输出)
IO(输入/输出)是所有程序都必需的部分
使用输入机制,允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据)、用户输入数据
使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘、光盘等存储设备中 - java.io包
Java的IO通过java.io包下的类和接口来支持
按出入的方向可分为:输入(input)与输出(output)
按内容类型可分为:字节流与字符流 - File类
File类是java.io包下代表与平台无关的文件和目录
程序中操作文件和目录,都可用通过File类来完成,File能新建、删除、重命名文件和目录
File类并不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流
为了多平台兼容,文件路径间隔符建议使用反斜杠 /,如果用\需要两个\,转义字符
类方法:
String getPath() //返回抽象路径名
boolean createNewFile() //创建文件,返回boolean值,如果文件已经存在则返回false,抛出 IOException异常
boolean exists() //返回boolean值,判断文件是否存在
boolean isDirectory() //判断是否为路径
boolean isFile() //判断是否为文件
long length() //返回文件大小
String getName() //获取文件名
boolean delete() //删除文件,返回boolean值
boolean mkdir() / mkdirs() //创建单级或者多级目录,返回boolean值
- 通过字节字符流实现文件读取与写入
1.流——Stream
Java把传输的数据抽象成流(Stream)的概念,简化了程序处理
四种抽象类:字节输入流—InputStream;字节输出流—OutputStream;字符输入流—Reader;字符输出流—Writer
2.字节输入流—InputStream
InputStream是所有字节输入流的父类
InputStream提供核心方法read(),用于读取字节数据
FileInputStream类专用于读取二进制文件
Closeable接口中只有一个close()方法用于关闭流并释放与之相关联的任何系统资源。
3.字节输出流——OutputStream
OutputStream是所有字节输出流的父类
OutputStream提供核心方法write(),用于向指定输出流输出字节数组
FileOutputStream类专用于写入二进制文件
Flushable接口清空缓冲区的数据,并将数据写到文件中,当使用flush方法之后可以对文件进行操作;
4.InputStream、OutputStream通用开发模式
public static void main(String[] args) {
File source = new File("d:/demo.jpg");
File target = new File("d:/demo1.jpg");
InputStream fis = null;
OutputStream fos = null;
try {
//实例化InputStream对象
fis = new FileInputStream(source);
//实例化Outputstream对象
fos = new FileOutputStream(target);
byte[] bs = new byte[1024];
int len;
//利用read方法循环读取的字节数据,并进行处理
while((len = fis.read(bs)) != -1){
System.out.println(len);
//将读取到到字节数组写入到输出流
fos.write(bs,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//通过finally块确保fis/fos对象执行close方法
if(fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
课程截图
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦