• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
至尊丶神月
博客园    首页    新随笔    联系   管理    订阅  订阅

java IO 学习(三)

java IO 学习(一)给了java io 进行分类,这一章学习这些类的常用方法

一、File

  1、创建一个新的File的实例:

1             /**
2              * 创建一个新的File实例
3              */
4             File f = new File("D:/file/3.jpg");// unix系统
5             File f2 = new File("D:\\file\\3.jpg");// windows系统
6             File f3 = new File("D:\\file", "3.jpg");
7             File f4 = new File(f3.toURI());
8             File f5 = new File("a.jpg");

  2、该File实例的常用方法

 1             if (f2.canExecute()) {
 2                 System.out.println("该文件可以被执行");
 3             }
 4             if (f2.canRead()) {
 5                 System.out.println("该文件可以被读取");
 6             }
 7             if (f2.canWrite()) {
 8                 System.out.println("该文件可以被写入(修改)");
 9             }
10             System.out.println("比较两个File实例(f2,f3)的字典:" + f2.compareTo(f3));
11             if (f.createNewFile()) {
12                 System.out.println("当且仅当具由该实例表示的文件尚不存在时,创建一个新的空文件,并返回true");
13             }
14             if (!f.exists()) {
15                 System.out.println("该实例表示的文件不存在");
16             }
17             if (!f.isFile()) {
18                 System.out.println("该实例不是标准文件");
19             }
20             if (!f.isDirectory()) {
21                 System.out.println("该实例不是目录");// 目录就是文件夹
22             }
23             if (!f.isHidden()) {
24                 System.out.println("该实例不是隐藏文件");
25             }
26             // 获取文件名或目录名
27              String name = f.getName();
28             // 获取文件绝对路径
29              String absolutePath = f.getAbsolutePath();
30             // 获取文件父目录
31              String parent = f.getParent();
32             // 获取文件路径
33              String path = f.getPath();
34              long lastUpdate = f.lastModified();
35              long length = f.length();
36             // 创建此抽象路径名指定的目录
37              f.mkdir();
38             // 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
39              f.mkdirs();
40             // 重新命名此抽象路径名表示的文件,就是对该文件的路径进行重命名
41             // 如果父路径相同,就是对该文件的重命名,如果父路径不一样,就是移动该文件的位置,目标文件已存在时移动失败
42              f.renameTo(new File("D:/file/2/1.jpg"));
43             // 删除该文件
44              f.delete();

 

二、InputStream

  1、一般创建一个InputStream实例由它的子类 FileInputStream 来完成。

1             /**
2              * 读取文件的原始字节流
3              */
4             FileInputStream fip = new FileInputStream("D:\\file\\3.jpg");// 通过路径
5             FileInputStream fip2 = new FileInputStream(f2);// 通过File实例

 

   2、它拥有的常用方法以及它子类的常用方法

 1             /**
 2              * 读取文件的原始字节流
 3              */
 4             FileInputStream fip = new FileInputStream("D:\\file\\3.jpg");// 通过路径
 5             FileInputStream fip2 = new FileInputStream(f2);// 通过File实例
 6             // 获取该流可以读取(或跳过)的字节数的估计值(int)
 7             System.out.println(fip.available());
 8             // 获取从输入流读取数据的下一个字节
 9             System.out.println(fip.read());
10             // 从输入流读取一些(new byte[100].length=100)字节数,并将它们存储到缓冲区 new
11             // byte[100],返回读取的字节数
12             System.out.println(fip.read(new byte[100]));
13             // 从输入流的0位置开始读取最多 100字节的数据到一个new byte[100],返回读取的字节数
14             System.out.println(fip.read(new byte[100], 0, 100));
15             // 跳过并丢弃100个字节数,返回实际跳过的字节数
16             fip.skip(100);
17             if (fip.markSupported()) {
18                 System.out.println("这个输入流支持 mark和 reset方法");
19                 // 标记此输入流中的当前位置
20                 fip.mark(12);
21                 // 将此流重新定位到上次在此输入流上调用 mark方法时的位置
22                 fip.reset();
23             }
24             // 关闭流
25             fip.close();
26             /**
27              *  子类DataInputStream多了.readLong();等一些方法,别的子类与父类基本相同,多出来的方法我们新人一般用不到
28              */    

 

 

三、OutputStream

 

 1             // 声明和InputStream基本一样,多了一个:true 表示字节将被写入到文件的末尾,而不是开头(append)
 2             FileOutputStream os = new FileOutputStream("D:\\file\\3.jpg", true);
 3             // 将指定的字节写入此输出流
 4             os.write(0);
 5             // 将 new byte[100].length字节从new byte[100]写入此输出流
 6             os.write(new byte[100]);
 7             // 从new byte[100]写入 50个字节,从偏移 0开始输出到此输出流
 8             os.write(new byte[100], 0, 50);
 9             // 刷新此输出流并强制任何缓冲的输出字节被写出
10             os.flush();
11             // 关闭流
12             os.close();
13             // 创建一个新的字节数组输出流,具有100大小的缓冲区容量,不填不指定大小
14             ByteArrayOutputStream baos = new ByteArrayOutputStream(100);
15             // 创建一个新分配的字节数组
16             byte[] b = baos.toByteArray();
17             // 将此字节数组输出流的 count字段重置为零,以便丢弃输出流中当前累积的所有输出
18             baos.reset();
19             // 使用utf-8字符集将缓冲区内容转换为字符串解码字节, 不填则用平台默认
20             baos.toString("utf-8");
21             /**
22              * 子类DataOutputStream多了.writeLong();.size()等一些方法,别的子类与父类基本相同,多出来的方法我们新人一般用不到
23              */

 

posted @ 2018-04-08 15:12  至尊丶神月  阅读(195)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3