Java io流的概述
Java语言定义了许多专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。
输入流
InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream类里面包含很多方法,主要理解FileInputStream,了解一下BufferedInputStream和DataInputStream。
InputStream类常用的方法
| 方法 | 说明 |
| read() | 从输入流中读取数据的下一个字节。返回0-255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回-1 |
| read(bytr[] b) | 从输入流中读入一定长度的字节,并以整数的形式返回字节数 |
| close() | 关闭此输入流并释放与该流关联的所有系统资源 |
Java中的字符是Unicode编码,是双字节的。InputStream是用来处理字节的,在处理字符文本时不是很方便,所以java为字符文本的输入提供了专门的一套单独的类Reader,但Reader类并不是InputStream类的替换者,只是在处理字符串时简化了编程。
Reader常用的一个方法就是FileReader。
输出流
OutputStream类是字节输入流的抽象类,此抽象类表示输出字节流的所有类的超类。OutputStream类中常用的也是FileOutputStream,了解BufferedOutputStream和DataOutputStream。
OutputStream类常用的方法
| 方法 | 说明 |
| write(int b) | 将制定的字节写入此输出流 |
| write(byte[] b) | 将b.length个字节从指定的byte数组写入此输出流 |
| flush() | 彻底完成输出并清空缓存区 |
| closr() | 关闭输出流 |
Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类,常用的就是FileWriter。
File类
File类是io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件。可以通过调用File类中的方法,实现创建、删除、重命名文件等。File类既可以操作文件,也可以操作目录,即文件夹。
首先是创建文件:
String fileName = "d:\\aaa.txt";
File f = new File(fileName);
f.createNewFile();
创建目录:
String dirName = "d:\\aaa";
File f = new File(dirName);
f.mkdirs();
删除文件:
String fileName = "d:\\aaa.txt";
File f = new File(fileName);
f.delete();
列出文件夹里的内容:
String a = "I:\\CloudMusic\\";
File f = new File(a);
File[] fs = f.listFiles();
for(int i = 0; i<fs.length;i++){
if(fs[i].isDirectory()){
System.out.print("[目录]");
}
else if(fs[i].isFile()){
System.out.print("[文件]");
}
String s = fs[i].getPath();
System.out.println(s);
}
列出文件名的数组:
String[] b = f.list(); //输出文件名的数组 xx
for(int i = 0 ;i<b.length; i++){
System.out.println(b[i]);
}
重命名或移动:
String s1 = "d:\\aaa.txt";
String s2 = "d:\\bbb.txt";
File f1 =new File(s1);
File f2 = new File(s2);
f1.renameTo(f2);
FileWriter用来把程序的内容写入其他文档:
String a ="d:\\bbb.txt";
FileWriter w = new FileWriter(a,true);
w.write("\r\n");
w.write("hahahhahahahhah ");
w.close();
Scanner用来把文档的内容读取到程序:
StringBuilder sb = new StringBuilder();
String s = "d:\\bbb.txt";
File f = new File(s);
Scanner sc = new Scanner(f);
while(sc.hasNextLine()){
String str = sc.nextLine();
sb.append(str);
sb.append("\r\n");
}
sc.close();
System.out.println(sb.toString());
读,FileInputStream 字节流:
String a = "d:\\bbb.txt";
File f = new File(a);
FileInputStream fis = new FileInputStream(f);
byte[] b = new byte[(int)f.length()];
fis.read(b);
fis.close();
写,FileOutputStream字节流:
String s ="你愁啥,瞅你咋地";
String url ="d:\\bbb.txt";
File f = new File(url);
FileOutputStream fos = new FileOutputStream(f ,true);
byte[] b = s.getBytes();
fos.write(b);
fos.close();
FileInputStream,FileOutputStream,Scanner(用来读文本),FileWriter(用来写文本)是重中之重
Java io流的概述的更多相关文章
- Java基础17:Java IO流总结
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- 揭开Java IO流中的flush()的神秘面纱
大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...
- java io流 对文件夹的操作
java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...
- Java IO流题库
一. 填空题 Java IO流可以分为 节点流 和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行. 输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数 ...
- Java IO流总结
Java IO流分类以及主要使用方式如下: IO流 |--字节流 |--字节输入流 InputStream: int read();//一次读取一个字节 int read(byte[] bys);// ...
- java io流 运行错误时,保存异常到文件里面
java io流 运行错误时,保存异常到文件里面 下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 //运行错误时,保存异常到文件里面 //下面这个实例,运行后,输入数字, ...
随机推荐
- BT是如何下载的
BT协议简介 一.BT下载是怎么来的? 在互联网上下载文件的方式大概有这么几种:FTP.HTTP.BT.eMule(电驴)等, 浏览器会直接支持FTP和HTTP下载,BT和eMule下载一般需要专用的 ...
- 我的第一篇文章 —— IE6的那些css常见bug(汇总)
我的微博终于在前几天建立了 虽说很早之前就知道博客园这个地方 但怕自己不能坚持去写一些东西一直没有建.这几天 我做了这个决定 把我的博客建起来 每周发一些看到的,听到了一些前端知识或者前沿技术. 另外 ...
- JS简单验证密码强度
<input type="password" id="password" value=""/><button id=&qu ...
- 新版C#编译器关于函数闭包
新版C#编译器关于函数闭包的一处更改 在Visual Basic.NET中,如果你写下类似下面的代码: Public Sub Test() For i = 0 To 100 Dim func = ...
- 图像资源Images Assets
图像资源Images Assets 开始之前,首先回顾一下iOS7初体验(1)——第一个应用程序HelloWorld中的一张图,如下所示: 本文便分享一下Images.xcassets的体验~_~ 1 ...
- java--九九乘法表
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:邱学伟 * 完成日期:2013 年 7 月 ...
- 使用SmsManager服务群发短信
SmsManager是Android提供的一个非常常见的服务,SmsManager提供了一系列sendXxxMessage()方法用于发送短信,不过短信通常都是普通文本,调用sendTextMessa ...
- 作为IT行业计算机从业人士,不要做“邻居盖新房,你就是背后放火的那种人”
金华-普通人(214103872) 21:03:01 尽扯蛋 颇有点凤姐的营销方式 横瓜(601069289) 21:05:16 不服气 你搞一个下面的类似软件出来 http://www.s ...
- phpwamp单身狗模式的详解与分析,单身狗模式/即霸体模式的作用讲解。
最近有学生在使用PHPWAMP的时候,问我霸体模式的作用. 学生问:老师,PHPWAMP里面的霸体模式是什么意思,有什么用? 回答:额...就是以前我发布测试版的时候,模式切换里面的单身狗模式. 学生 ...
- docker--------------实践(转载)
在私有云的容器化过程中,我们并不是白手起家开始的.而是接入了公司已经运行了多年的多个系统,包括自动编译打包,自动部署,日志监控,服务治理等等系统.在容器化之前,基础设施主要以物理机和虚拟机为主.因此, ...