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概述:

Propertieshashtable的子类:

也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串,

所以不需要泛型。

Properties是集合中和IO技术相结合的集合容器:

该对象的特点,可以用于键值对形式的配置文件。

那么在加载数据时,需要数据有固定格式,键=值;

十一、PrintWriter流:

一》打印流:

将流提供了打印方法,可以将各种数据类型的数据都原样打印;

字节打印流:

PrintStream

构造函数可以接受的参数类型:

1.file对象,File

2.字符串路径。String

3.字节输出流,outputstream

字符打印流:

PrintWriter

构造函数可以接受的参数类型:

1.ile对象,File

2.字符串路径。String

3.字节输出流,outputstream

4.字符输出流,Writer

 

 

0 0
原创粉丝点击