javaIO输入输出流

一、流的简单概述

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

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章