IO流

来源:互联网 发布:ct重建算法 编辑:程序博客网 时间:2024/06/08 12:08

file.mkdirs()//创建多层文件夹

IO流:
按流的方向分:
Input:输入流:
Onput:输出流
按流操作的数据:
字符流:能操作的只能是文本文件
什么叫文本文件? 使用文本工具(记事本,np++,editplus)可以打开,人可以看懂得常见的文本文件:.txt,.java,其他语言源码
但是:.doc,.excel,.ppt不是文本文件
字节流:能操作所有的一切文件,文本文件,视频,音频,图片,等
Java中的四大流:共同的父类Reader,抽象类
比如:FileReader
字符输入流:
方法:read,一个字符,一个字符数组(一部分)
字符输出流:
FileWriter.BufferedWriter
方法:Writer 一个字符,一个字符数组()一部分,一个字符串(一部分)
字节输入流:
共同的父类 InputStream.抽象类
方法read:
一个字节,一个字节数组(一部分)

字节输出流:OnputStream.抽象类
方法write:一个字节,一个字节数组(一部分)

java中的流的命名:功能+父类名

字节流:OutputStream父类:一个抽象类;
方法:
close();//关闭
flush();//刷新
写数据方法:write
write 一个字节:public void write(int b)不能超过 255

write 一个字符数组:
public void write(byte[]b)
write 一个字符数组的一部分
public void write(byte[]bs,int startIndex,int len(多少个));

构造:
public FileOutPutStream(String name)

public FileOutPutStream(File file)

方法:

write 一个字节:public void write(int b)不能超过 255

write 一个字符数组:
public void write(byte[]b)
write 一个字符数组的一部分
public void write(byte[]bs,int startIndex,int endIndex);

String 类中一个方法:byte[] getBytes(),帮你查表
f.write(“”.getBytes);注意一个中文两个字节

==================================

续写和换行:
使用FileOutoutStreanm写数据的续写和换行问题:

续写:public FileOutPutStream(File file,boolean append)
public FileOutPutStream(String name,boolean append)

换行:
windows :\r\n
linux:\n
Mac:\r

==================================

字节输入流:InputStream
方法;
public int read();//读取一个字节,返回该字节的码值
public int read(byte[] bs);//读取一个字节数组,存到bs中,返回值代表实际读到的字节数

我们使用的是InputStream的子类:FileStream
构造:
public FileStream(File file);

public FileStream(String name);

String类中有一个String(byte[] bytes)构造
String 类中有String(byte[] bytes
,index,0)
byte[]bs=new byte[]
String a=new String(bs);

byte[]bs=new byte[];
int len=0;

while((len=f.read(bs))!=-1)
{
String s=new String(bs,0,len);
syso(new String(bs,0,len))

}

练习:
练习1:
FileInputStream f1=new FileInputStream(new File(“.txt”));

FileOutputStream f2=new FileOutputStream(new File(“.txt”));
int b=0;
while(b=f1.read)!=-1){

f2.write(b);
}
f1.close();

f2.close();

练习2:
byte[]bs=new byte[2048];

int len=0;
while((len=f1.read(bs))!=-1){
f2.write(bs,0,len);

}

f2.close();

f1.close();

缓冲流:
缓冲的字节输入流
BufferedInputStream
构造:
public BufferedFileOutputStream(FileOutputStream out);

缓冲的字节输出流
BufferedOutputStream
构造:
public BufferedFileOutputStream(FileOutputStream out);
方法;
write 一个字节:public void write(int b)不能超过

write 一个字符数组:
public void write(byte[]b)
write 一个字符数组的一部分
public void write(byte[]bs,int startIndex,int len);

=================================
属性集:就是键值对,一般我们叫做属性名和属性值
Properties类:属性集类就是Map的实现类

Properties

原创粉丝点击