本帖最后由 小石姐姐 于 2018-8-9 11:34 编辑
java.io.OutputStream 字节输出流: 字节输出流的基本共性功能方法: [Java] 纯文本查看 复制代码 Public void close():关闭此输出流并释放与此流相关联的任何系统资源(当完成流的操作时,必须调用此方法,释放系统资源)
Public void flush():刷新此输出流并强制任何缓冲的输出字节被写出
Public void write(byte[] b):将b.length字节从制定的字节数组写入此输出流
Pulic void write(byte[] b,int off,int len):从制定的字节数组写入len字节,从偏移量off开始输出到此输出流,off是开始的索引,len是写的字节数
Public abstract void write(int b):将制定的字节输出流 Java.io.FileOutptStream 文件字节输出流: 构造方法: [Java] 纯文本查看 复制代码 FieOutputSteam(String name):创建一个向具有制定名称的文件中写入数据的输出文件流(String name)目的地是一个文件的路径
FileOutputStream(File file):创建一个向指定File对象表示的文件中写入数据的文件输出流(File file)目的地是一个文件 字节输出流的使用步骤(重点): 1、创建FileOutputStream对象,构造方法中传递写入数据的目的地 2、调用FileOutputStream对象中的方法write,把数据写入到文件中 3、释放资源 在文件中追加/续写: 使用两个参数的构造方法 [Java] 纯文本查看 复制代码 FileOutputStream(String name,booleam append):创建一个向具有自定name的文件中写入数据的输出文件流
FileOutputStream(File file,boolean append):创建一个向指定File对象表示的文件中写入数据的文件输出流 boolean append:追加写开关 true:创建对象不会覆盖原文件,继续在文件的末尾追加写数据 false:创建一个新文件,覆盖原文件 Java.io.InputSream:字节输入流 定义了所有子类的共性方法: [Java] 纯文本查看 复制代码 Int read():从输入流中读取数据的下一个字节,读取文件中的一个字节并返回,读取到文件的末尾返回-1 例:获取文件中的单个字符 [Java] 纯文本查看 复制代码 int len = 0;
FileInputStream fis = new FileInputStream("day09\\b.txt");
while ((len = fis.read()) != -1){
System.out.print((char) len);
}[/align][align=left][size=3][color=#000000] [/color][/size][/align][align=left]Int read(byte[] b):从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中,数组的长度一般定义为1024(1KB)或者1024的整数倍,int是每次读取的有效字节个数[/align][align=left]FileInputStream fis = new FileInputStream("day09\\b.txt");
byte[] bytes = new byte[1024];
int len = 0;
while ((len = fis.read(bytes))!= -1){
System.out.println(new String(bytes,0,len));
}
Void close():关闭此输入流并释放与该留关联的所有系统资源 Java.io.FileInputStream 作用:把硬盘文件中的数据,读取到内存中使用 构造方法: [Java] 纯文本查看 复制代码 FileInputStream(String name):name,文件的路径
FileInputStream(File file):file,文件 补充String类的构造方法: [Java] 纯文本查看 复制代码 String(byte[] bytes):把字节数组换换为字符串
String(byte[] bytes,int offset,int length):把字节数组的一部分转换为字符串offset:数组的开始索引 length:转换的字节个数 字节输入流的使用步骤(重点): 1、创建FileInputStream对象,构造方法中绑定要读取的数据源 2、使用FileInputStream对象中的方法read,读取文件 3、释放资源 字符流:不管是中文还是英文都可以读取 Reader输入流(FileReader) Java.io.Reader 方法: [Java] 纯文本查看 复制代码 Public void close():关闭此流并释放与此流相关联的任何系统资源
Public int read():从输入流读取一个字符
Public int read(char[] cbuf):从输入流中读取一些字符,并将他们存储到字符数组cbuf中 Writer字符输出流 java.io.Writer 主要的是FileWriter 共性方法 [Java] 纯文本查看 复制代码 Void write(int c):写入单个字符
Void write(char[] cbuf)写入字符数组
Abstract void write(char[] cbuf,int off,int len):写入字符数组的某一部分,off数组的开始索引,len写的字符个数
Void write(String str):写入字符串
Void write(String str,int off,int len):写入字符串的某一部分,off字符串的开始索引,len写的字符个数
Void flush():刷新该流的缓冲
Void close():关闭此流,但要先刷新它 FileWriter类 字符输出流的使用步骤(重点) 1、创建FileWriter对象,构造方法中绑定要写入数据的目的地 2、使用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程) 3、使用FileWriter中的方法flush,把内存缓冲区中的数据,刷新到文件中 4、释放资源(会把内存缓冲区中的数据刷新到文件中) Flush方法和close方法的区别 -flush:刷新缓冲区,流对象可以继续使用 -close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再被使用了 续写和换行 续写,追加写:使用两个参数的构造方法 [Java] 纯文本查看 复制代码 FileWriter(String fileName,boolean append):
FileWriter(File file,boolean append)
String fileName,File file:写入数据的目的地
Boolean append:续写开关true:不会创建新的文件覆盖原文件,可以续写;false:创建新的文件覆盖原文件 构造方法作用: 1、创建FileWriter对象 2、根据构造方法中的路径,在磁盘行创建文件(如果文件已存在,则清空文件内容) 3、将FileWriter对象指向磁盘上的文件 Properties类 表示了一个持久的属性集,Properties可保存在流中或从流中加载 Preoperties集合是一个唯一和IO流相结合的集合 可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储 [Java] 纯文本查看 复制代码 Void store(OutputStream out,String comments)
Void store(Writer wiriter,String coments) 参数: OutputStream out:字节输出流,不能写入中文 Writer writer:字符输出流,可以写中文 String comments:注释,用来解释说明保存的文件是做什么用的 不能使用中文,会产生乱码,默认是Unicode编码 一般使用””空字符串 使用步骤: 1、创建Properties集合对象,添加数据 2、创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地 3、使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储 4、释放资源 可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用 可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用 [Java] 纯文本查看 复制代码 Void load(InputStream inStream)
Void load(Reader reader) 参数: InputStream inStream:字节输入流,不能读取含有中文的键值对 Reader reader:字符输入流,能读取含有中文的键值对 使用步骤: 1、创建Properties集合对象 2、使用Preperties集合对象中的方法Load读取保存键值对的文件 3、遍历Properties集合 注意事项: 1、存储键值对的文件中,键与值默认的连续符号可以使用=,空格(其他符号) 2、存储键值对的文件中,可以使用#进行注释,被注视的键值对不会再被读取 3、存储键值对的文件中,键与值默认都是字符串,不能再加引号 属性列表中每个键及其对应值都是一个字符串 Properties集合是一个双列集合,Key和value默认都是字符串 使用Properties集合存储数据,遍历取出Properties集合中的数据 Properties集合是一个双列集合,key和value默认都是字符串 Properties集合有一些操作字符串的特有方法 [Java] 纯文本查看 复制代码 Object setProperty(String key,String value)调用Hashtable的方法put
String getProperty(String key)通过key找到value值,此方法相当于Map集合中的get(key)方法
Set<String> stringPropertyNames()返回此属性列表中的键集,其中该键及其对应值都是字符串 IO异常: IO流的标准格式: [Java] 纯文本查看 复制代码 FileWriter fw = null;
try {
//IO流对象的创建, 操作等代码
fw = new FileWriter("d:\\09_IOAndProperties\\g.txt", true);
for (int i = 0; i <10 ; i++) {
fw.write("HelloWorld"+i+"\r\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 释放资源
if(fw != null){
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|