JAVA语言之IO 学习(三)
小标 2018-07-24 来源 : 阅读 1072 评论 0

摘要:本文主要向大家介绍了JAVA语言之IO 学习,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之IO 学习,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助

一、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              */

希望对JAVA有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程