1. File常用的构造

 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。(当给定文件后缀时,默认创建文件File(String pathname)

2. File创建功能

     createNewFile(); //这个创建文件,当指定文件不存在时创建文件并返回true,否则返回falsemkdir()//创建一级目录,当指定文件夹不存在时创建文件并返回true,否则返回falsemkdirs()//创建多级目录; 当指定文件夹不存在时创建文件并返回true,否则返回false注意事项:  不要以扩展名去区分文件或者文件夹;

3. File的删除功能

   boolean delete();//删除功能,删除指定的文件或者文件夹,存在时删除并放回true,否则返回false。

注意事项: 1.如果文件夹里面还有内容(有文件夹或者文件),不能删除成功; 2.不走回收站;

4.判断方法

   Boolean isFile()//判断是否是文件Boolean isDirectory()//判断是否是文件夹Boolean exists()//判断文件或者文件夹是否存在

4.相对路径和绝对路径的区别

绝对路径是带盘符的;
相对路径在java中相对于项目跟目录下

5.普通获取方法

getAbsolutePath(); //获取绝对路径
getName();//获取关联的文件或者文件的名字(也就是最后一级的名字)
length();//获取文件的长度,以字节单位,需要注意的是文件夹是没有长度的;

6.高级获取方法

 list();//获取指定文件下一级目录下所有的文件和文件夹的名字; 将这些名字放置在String数组中;string [ ] files=f.list();  //调用这必须是文件夹;文件调用的话会出错 listFiles()//获取指定文件下,一级目录下所有的文件和文件夹的File对象;将这些对象放置在File数组中。注意:调用这必须是文件夹;

8. io流分类

字符流:

Reader//抽象父类
FileReaderWriter//抽象父类FileWriter

字节流:

 InputStream  //字节输入流也是抽象FileInputStreamOutputStream  字节输出流FileOutputStream

注意: 字节流可以操作所有类型的文件,因为所有的文件在计算机中都是以字节形式存储,而字符流只能用来操作纯文本类型的文件,不能操作字节类型的文件,建议使用字节流。

9.字符字节的读写

9.1 利用字符流复制文本文件

利用字符流将当前工程下的IODemo.java拷贝到d盘的a文件夹下

字符流自是把内容写到缓冲区,所以需要刷新。而字节流直接写入文件中,不需要刷新。

package com.itheima_02;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;/** 使用字符流复制文本文件* * 数据源    IODemo.java* 目的地    d:\\IODemo.java*/public class FileCopyDemo {public static void main(String[] args) throws IOException  {//创建字符输入流对象FileReader fr = new FileReader("IODemo.java");//创建字符输出流对象FileWriter fw = new FileWriter("d:\\IODemo.java");//方法一:一次读写一个字符/*int ch;while((ch = fr.read()) != -1) {fw.write(ch);fw.flush();}*///方法二:一次读写一个字符数组int len;//用于存储读到的字符个数char[] chs = new char[1024];while((len = fr.read(chs)) != -1) {fw.write(chs,0,len);fw.flush();}//释放资源fw.close();fr.close();}
}
9.2 利用字节流复制文本文件

利用字节流将当前工程下的IODemo.java拷贝到d盘下

package com.itheima_03;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; /** 使用字节流复制文本文件* * 数据源    IODemo.java* 目的地    d:\\a\\IODemo.java*/public class FileCopyDemo {public static void main(String[] args) throws IOException  {//创建字节输入流对象FileInputStream fis = new FileInputStream("IODemo.java");//创建字节输出流对象FileOutputStream fos = new FileOutputStream("d:\\a\\IODemo.java");//一次读写一个字节/*int by;while((by = fis.read()) != -1) {fos.write(by);}*///一次读写一个字节数组int len;//存储读到的字节个数byte[] bys = new byte[1024];while((len = fis.read(bys)) != -1) {fos.write(bys,0,len);}//释放资源fos.close();fis.close();}
}
9.3 复制图片

字节流可以操作所有类型的文件,因为所有的文件在计算机中都是以字节形式存储,而字符流只能用来操作纯文本类型的文件,不能操作图片,音频,视频等字节类型的文件

package com.itheima_04;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;/** 分别使用字符流和字节流复制图片* * 二进制文件只能使用字节流进行复制(使用windows自带记事本打开读不懂的,比如图片,视频,音频)* 文本文件的复制即可使用字符流,也可以使用字节流* */public class CopyImage {public static void main(String[] args) throws IOException  {//method();//创建字节输入流对象FileInputStream fis = new FileInputStream("传智学院.jpg");//创建字节输出流对象FileOutputStream fos = new FileOutputStream("d:\\传智学院.jpg");//一次读写一个字节数组int len;//用于存储读到的字节个数byte[] bys = new byte[1024];while((len = fis.read(bys)) != -1) {fos.write(bys,0,len);}//释放资源fos.close();fis.close();}
   private static void method() throws IOException
{//创建字符输入流对象FileReader fr = new FileReader("传智学院.jpg");//创建字符输出流对象FileWriter fw = new FileWriter("d:\\传智学院.jpg");        //一次读写一个字符数组int len;//用于存储读到的字符个数char[] chs = new char[1024];while((len = fr.read(chs)) != -1) {fw.write(chs,0,len);fw.flush();}      //释放资源fw.close();fr.close();}
}

黑马基础 20 IO流相关推荐

  1. 【Java基础】· IO流习题详解

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  2. java io flush_《文件传输基础——Java IO流》,对其中flush方法的思考

    在学习了<文件传输基础--Java IO流> 课程后,发现自己对flush()方法的调用有很多疑惑.在查询资料和自己看源码以及动手试验之后发现有以下几个特点.如有误也请大家指正出来,一切为 ...

  3. 笔记整理4----Java语言高级(四)16 JAVA常用API-高级+17 泛型与常见数据结构+18 Map与Set集合+19 异常处理+20 IO流-高级

    16 JAVA常用API-高级+17 泛型与常见数据结构+18 Map与Set集合+19 异常处理+20 IO流-高级 第05天 API 今日内容介绍  Object类 & System类 ...

  4. Java基础学习—— IO流

    Java基础学习-- IO流 1 文件 1.1 文件的创建 1.2 文件常用的方法 2 IO流 2.1 FileInputStream 2.2 FileOutputStream 2.3 文件的拷贝 2 ...

  5. [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别

    [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...

  6. 黑马程序员————IO流4(day21)

    ----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! IO流4 l  对象的序列化 l  管道流 l  Ra ...

  7. Java基础之IO流操作

    第14章 File类与IO流 主要内容 File类 字节流 字符流 文件流 缓冲流 转换流 数据流 对象流 打印流 Scanner与System与IO流 教学目标 使用File类对象表示文件或目录 能 ...

  8. 文件传输基础——Java IO流

    一.文件的编码 1 package com.study.io; 2 3 4 /** 5 * 测试文件编码 6 */ 7 public class EncodeDemo { 8 9 /** 10 * @ ...

  9. Java基础之IO流

    IO流用来处理设备间数据传输,java对数据的操作是通过流的方式,而这些操作流的对象被封装在IO包中.流可以分为字符流和字节流.字符流可以设置编码方式,这就使得处理文本更加方便. IO常用基类 字节流 ...

最新文章

  1. 内存都是由半导体器件构成的_开启5G新时代——XPS成像技术在半导体器件中的应用...
  2. 使用 Artifactory 1分钟搭建 CocoaPod 私服
  3. dnf加物理攻击的卡片有哪些_DNF新版本完美附魔太贵,这些紫卡附魔也不错
  4. 【IT笔试面试题整理】给定二叉树先序中序,建立二叉树的递归算法
  5. kill无法杀死某个进程
  6. 商丘高中计算机考试成绩查询系统,2019商丘中考招生成绩查询时间及网站公布...
  7. grpc python异步实现_在grpcpython中处理异步流请求
  8. Discuz 群组 新加入 活跃成员 成员列表 会员数量问题!
  9. 关于管理的十个经典故事
  10. 链表插入排序和冒泡排序c语言
  11. 沟通CTBS远程接入软件研究
  12. MATALB 卷积神经网络 图片二分类
  13. 数学分析教程(科大)——3.4笔记+习题
  14. 发现的IplImage转QImage的好用的方式
  15. mimetype知识点备忘
  16. linux每日命令(3):ln命令
  17. Image类--旋转和翻转图片
  18. codeforces 766 C Mahmoud and a Message
  19. PanGu 开发板构建 Yocto Linux 时的注意事项
  20. 死锁、活锁、饿死和阻塞的个人理解

热门文章

  1. SQL中的ISNULL函数详解及用途
  2. java中构造方法的特征及其作用
  3. ajax 服务器压力,web中ajax请求后台的节流方式,减轻服务器压力
  4. N-Gram语言模型
  5. Lingoes的划词翻译功能极有可能泄露隐私
  6. Tinyproxy安装与配置(ip代理)
  7. 树莓派 4位数码管时间显示
  8. 纪宁罗峰鸿蒙秦羽,你们说楚阳霍雨浩唐三萧炎林动姬动纪宁罗峰秦羽龙皓晨打起来谁赢...
  9. 微信公众号第三方开发之五配置自定义菜单
  10. 家用路由器-- LAN与WAN通信的过程以及IP转换