javaIO输入输出流
来源:互联网 发布:mac air怎样新建文件夹 编辑:程序博客网 时间:2024/06/06 23:19
一、流的简单概述
1.流按操作数据分为:字节流、字符流:
2.流按流向分为:输入流、输出流:
字节流的抽象基类:
InputStream、OutputStream;
字符流的抽象基类:
Reader、Writer
二、创建一个简单流步骤:
1.创建流:
FileWriter fw = new FileWriter("demo.txt");
2.写入流(往流中写入数据);
fw.write("abcd");
3.关闭流
fw.close();
三、读取流创建步骤:
1.创建读取流对象,并关联读取文件;
FileReader fr = new FileReader("demo.txt");
2.调用读取流对象的读取方法;
int ch = 0;
while((ch=fr.read())!=-1)
{
sop((char)ch);
}
3.关闭读取流对象;
fr.close();
四、字符流的缓冲区:
1.对应缓冲区:
BufferedWriter
BufferedReader
2.
缓冲区的出现是为了提高流的操作效率;
所以在创建缓冲区之前,必须要先有流对象;
该缓冲区中提供了一个跨平台的换行符,newLine();
newLine():方法返回的时候只返回回车符之前的数据内容,并不返回回车符。
3.创建写入流步骤:
1.创建写入流对象
FileWriter fw = new FileWriter("buf.txt");
2.将流对象传给缓冲区的构造函数;
BufferedWriter bufw = new BufferedWriter(fw);
3.写入数据;
for(int x=0;x<5;x++)
{
bufw.write("abcd"+x);
bufw.newLine();
//记住,只要用到缓冲区,就要记得刷新。
bufw.flush();
}
4.关闭资源
bufw.close();
五、创建读取流缓冲区步骤:
1.创建读取流对象,并和文件关联
FileReader fr = new FileReader("buf.txt");
2.将流对象传给缓冲区的构造函数;
BufferedReader bufr = new BufferedReader(fr);
3.读取数据:
String line = null;
//当返回null时,表示读到文件末尾
while((line=bufr.readLine())!=null)
{
System.out.println(line);
}
4.关闭资源
bufr.close();
六、字节流
》字节流:既可以文字数据,也可以媒体数据
InputStream
OutputStream
二》outputStream调用writer();不用刷新,数据就直接写入目的地;
因为字节是最小单位,不需要缓冲区,不需要任何操作,直接写入。
三》字节流的读取方式有三种;
1.单个字节读取方式;
2.字节数组读取方式;(建议使用)
3.字节流特有的读取方式(available)
此方式慎重使用,如果读取的文件太大,超出了jvm范围,就会内存溢出
七、字节流的缓冲区:
BufferedOutputStream
BufferedInputStream
八、File概述:
用来将文件或者文件夹封装成对象;
1.创建File对象有三种方式:
1.File f1 = new File("f:\\abc\\a.txt");
2.File f2 = new File("f:\\abc","b.txt");
3. File d = new File("f:\\abc");
File f3 = new File(d,"c.txt");
九、File类常见方法:
1.创建:
Boolean createNewFile();在指定位置创建文件,如果该文件已经存在,则不会创建, 返回false;和输出流不一样,输出流会覆盖以前文件。
Boolean mkdir();创建文件夹;
Boolean mkdirs():创建多级文件夹;
2.删除
Boolean delete();删除失败,返回false
Void deleteOnExit();在程序退出时,删除指定文件;
3.判断
Boolean exists();文件是否存在
Boolean isDirectory();判断是否是目录;
Boolean isFile();判断是否是文件;
Boolean isHidden();判断是否是隐藏文件;
Boolean isAbsolute();是否是绝对路径
4.获取信息
String getName();获取名称
String getpath(); 获取路径;
String getParent();获取父目录,
//该方法返回的是绝对路径中的父目录;如果获取的是相对路径,返回null
//如果相对路径中有上一层目录,那么该目录就是返回结果;
String getAbsolutePath();获取绝对路径
Long lastModified();最后一次修改时间。
Long length();获取文件长度
十、Properties概述:
Properties是hashtable的子类:
也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串,
所以不需要泛型。
Properties是集合中和IO技术相结合的集合容器:
该对象的特点,可以用于键值对形式的配置文件。
那么在加载数据时,需要数据有固定格式,键=值;
十一、PrintWriter流:
一》打印流:
将流提供了打印方法,可以将各种数据类型的数据都原样打印;
字节打印流:
PrintStream:
构造函数可以接受的参数类型:
1.file对象,File
2.字符串路径。String
3.字节输出流,outputstream
字符打印流:
PrintWriter:
构造函数可以接受的参数类型:
1.ile对象,File
2.字符串路径。String
3.字节输出流,outputstream
4.字符输出流,Writer
- javaIO输入输出流
- javaIO输入输出流
- javaIO总结一(输入输出流)
- JavaIO输入输出流的总结
- JavaIO之输入输出流链(一)
- JavaIO操作之 字节 输入输出流
- JavaIO输入输出学习之一
- JavaIO流(12)System改变标准输入输出设备
- 【JavaIO】JavaIO流分类
- JavaIO输入输出学习之二
- javaIO流
- javaIO流
- JavaIO流
- JavaIO流
- JavaIO流
- javaIO流
- JavaIO流
- javaIO流
- 声音的播放——MCI的使用
- HTTP 协议详解
- JQuery实现鼠标移动到图片边框效果
- GTK自定义函数之透明列表(5)-bobo
- 中纪委:去年巡视查出6名问题高官
- javaIO输入输出流
- OpenCV_连通区域分析(Connected Component Analysis-Labeling)
- opencv提高对比度算法
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- 完全卸载oracle|oracle卸载|彻底卸载oracle
- 简单的实现一个自定义的Linq to Sql Provider
- myeclipse启动An internal error occurred during: "Initializing Java Tooling".
- 多线程
- 零基础写嵌入式操作系统-2