021.2 IO流——字节输出流
内容:流的分类,文件写入(字节输出流),异常处理,获取一个文件夹下的特定文件集合
字节流的抽象基类:InputStream,OutputStream
字符流的抽象基类:Reader,Writer
由这四个类派生出来的子类名称都是以父类名作为子类名的后缀。如:InputStream的子类FileInputStream,Reader的子类FileReader
###################################################
文件写入,字节输出流
private static final String LINE_SEPARATOR = System.getProperty("line.separator"); //获取系统换行符,用于换行
public static void main(String[] args) throws IOException
{
System.out.println(LINE_SEPARATOR);
String s = "花"+LINE_SEPARATOR+"awegadjgaw";
File dir = new File("abc");
if(!dir.exists()){
dir.mkdir();
}
FileOutputStream fos = new FileOutputStream("abc\\ai.txt",true); //true表示可以续写
fos.write(s.getBytes()); //写入信息
System.out.println("ok");
fos.close();
}
##########异常处理
public static void main(String[] args)
{
FileOutputStream fos = null; //在try外面声明,在finally里面才能关闭
try{
fos = new FileOutputStream("abc"+File.separator+"ai.txt");
fos.write("aiqing".getBytes());
}
catch(IOException e){
}
finally {
if(fos != null){ //释放资源前要判断,是否为空
try{
fos.close();
}
catch(IOException e){
throw new RuntimeException(e);
}
}
}
}
##########################################练习
获取一个文件夹下的特定文件集合:使用到了过滤器
public static void main(String[] args)
{
File f = new File("f:"+File.separator+"eclipse_javaCode"+File.separator+
"day21"+File.separator+"day19");
// System.out.println(f);
List<File> list = getList(f,".java");
for(File file:list){
System.out.println(file);
}
}
private static List<File> getList(File dir, String string)
{
List<File> list = new ArrayList<File>();
FileFilter filter = new FileFilterByEnding(string);
getFileList(dir,list,filter);
return list;
}
private static void getFileList(File dir, List<File> list, FileFilter filter)
{
//获取文件数组
File[] files = dir.listFiles();
//遍历文件数组
for(File file:files){
if(file.isDirectory()){
getFileList(file, list, filter);
}
else{
if(filter.accept(file)){
list.add(file);
}
}
}
}
含主函数
public class FileFilterByEnding implements FileFilter
{
private String suffix;
public FileFilterByEnding(String suffix) {
super();
this.suffix = suffix;
}
@Override
public boolean accept(File pathname)
{
return pathname.getName().endsWith(suffix);
}
}
过滤器类
021.2 IO流——字节输出流的更多相关文章
- IO流-字节输出流OutputStream异常处理
package it.cast_01; import java.io.FileNotFoundException; import java.io.FileOutputStream; import ja ...
- 021.4 IO流——字节、字符桥梁(编码解码)
默认使用的就是gbk编码,这里的例子改成了utf8编码 写入—编码 private static void writeText() throws IOException { FileOutputStr ...
- IO流 - 字节输入输出流,文件的复制
IO流 I:input - 输入(读取),eg:把硬盘的内容读取到内存 O: output - 输出(写入) eg:把内存中的东西写入硬盘保存 流:数字(字符/字节) 一般1个字符=2Byte,1By ...
- Java中的IO流之输出流|乐字节
大家好,乐字节小乐又来了.上一篇给大家带来的是:Java中的IO流之输入流|乐字节,本文将继续讲述IO流之输出流. 一.输出流 1.抽象类:OutputStream 和 Writer Output ...
- IO流 -字符输入输出流,以及异常处理方法
字符输入流 java.io.Reader: 字符输入流的顶层抽象父类 共性的成员方法: int read() 读取单个字符,并返回. int read(char[] cbuf) 将字符读入数组. ab ...
- java_缓冲流(字节输出流)
缓冲流分为: 字节缓冲流:BufferedIntputSream(字节缓冲输出流),BufferdOutputStream(字节缓冲输入流) 字符缓冲流:BufferedReader(字符输入缓冲流) ...
- 021.9 IO流 流总结
###################################################################################IO流的规律总结:解决的问题,开发 ...
- 021.1 IO流——File类
########################################IO流: IO:用于处理设备上的数据的技术.设备:内存,硬盘,光盘 流:系统资源,Windows系统本身就可 ...
- 021.3 IO流——字节流-FileInputStream读取字节
内容:文件读取方法,读取方法例子,read(buf)方法中buf的取值,字节流缓冲区对象—提高读取速度/// 文件读取方法:fis.read(),fis.read(buf),具体看例子 例子:文件读取 ...
随机推荐
- 《Think Python》第7章学习笔记
目录 7.1 重新赋值(Reassignment) 7.2 更新变量(Updating variables) 7.3 while 语句(The while statement) 7.4 break 语 ...
- 实现MySQL数据库的实时备份
实现MySQL数据库的实时备份 使用MySQL Replication 吴剑 2018-08-03 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian 吴剑 ht ...
- JavaScript函数——闭包
闭包 概念 只有函数内部的子函数才能读取局部变量,所以闭包可以理解成"定义在一个函数内部的函数".在本质上,闭包是将函数内部和函数外部连接起来的桥梁 例子 function out ...
- jQuery基础---常规选择器
内容摘要: 1.简单选择器 2.进阶选择器 3.高级选择器 发文不易,转载请注明出处! jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元素的标签名.属性名. ...
- JavaScript迭代
定义: 指的是按照某种顺序逐个访问列表中的每一项. 迭代在数学中的定义: 在循环的基础上, 每一次循环, 都比上一次更为接近结果. 循环定义:指的是在满足条件的情况下,重复执行同一段代码. 迭代方法: ...
- [javaSE] 多线程(售票例子)
需求:简单的买票程序,多个窗口卖票,多线程 定义一个类Ticket实现Runnable接口, 定义成员属性int类型的票数nums 实现run()方法,run方法中 while(true)的死循环,打 ...
- WPF月视图控件
简介 在做一个应用时,需要做成日历月视图的形式.自己做较麻烦,于是上网找找看,在CodeProject上发现了这个Quick and Simple WPF Month-view Calendar,可是 ...
- mybatis之typehandles
mybatis之typehandles 无论是Mybatis在预处理语句PreparedStatement中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成ja ...
- 局域网内使用ipv6 通信
链路本地地址:用于网段内通信,不能跨路由访问 在ping本地链路地址和全球唯一地址时有点差别,链路本地地址需要加上网络接口号 Linux 查看ipv6链路本地地址:ifconfig linux系统pi ...
- 关于容器、虚拟机以及 Docker 的一个入门教程
Yves yao · 2017-09-05翻译 · 1315阅读 原文链接 huangxiaolu审校 源地址:http://zcfy.cc/article/a-beginner-friendly ...