package Demo45;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;/*** java.util.Properties集合 extends Hash<k,v> implement Map<k,v>* Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载* Properties集合是唯一一个和IO流相结合的集合* 可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储* 可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用** 属性列表中每个键及其对应值都是一个字符串* Properties集合是一个双列集合,key和value默认都是字符串*/
public class DemoProperties {public static void main(String[] args) throws IOException {//show01();show02();show03();}/*** 可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用* void load(InputStream inStream)* void load(Reader reader)* 参数:* InputStream inStream:字节输入流,不能读取含有中文的键值对* Reader reader:字符输入流,能读取含有中文的键值对** 使用步骤:* 1、创建Properties集合对象* 2、使用Properties集合对象中的方法load读取保存的键值对的文件* 3、遍历Properties集合* 注意事项:* 1、存储键值对的文件中,键与值默认的连接符合可以使用=,空格(其它符号)* 2、存储键值对的文件中,可以使用#进行注释,* 3、存储键值对的文件中键与值默认都是字符串,不用在加引号**/private static void show03() throws IOException {//1、创建Properties集合对象Properties propp = new Properties();// 2、使用Properties集合对象中的方法load读取保存的键值对的文件propp.load(new FileReader("E:\daima\java_day01\src\Demo44\abc"));//3、遍历Properties集合Set<String> set = propp.stringPropertyNames();for (String key : set) {String value = Property(key);System.out.println(key + "=" + value);}}/*** 可以使用Properties集合的方法store,把集合中的临时数据,持久化写入到硬盘中存储* void store(OutputStream out, String comments)* void store(Writer writer, String comments)* 参数:* OutputStream out:字节输出流,不能写中文* Writer writer字符输出流,可以写中文* String comments:注释,用来解释说明保存的文件是做什么的,不能使用中文,一班使用空字符串* 使用步骤:* 1、创建Properties集合对象,添加数据* 2、创建字节输入流/字符输出流对象,构造方法中绑定要输出的目的地* 3、使用Properties集合的方法store,把集合中的临时数据,持久化写入到硬盘中存储* 4、释放资源**/private static void show02() throws IOException {//1、创建Properties集合对象,添加数据Properties prop = new Properties();//使用setProperty往集合里添加数据prop.setProperty("张靓颖","168");prop.setProperty("迪丽热巴","168");prop.setProperty("古力娜扎","168");//2、创建字节输入流/字符输出流对象,构造方法中绑定要输出的目的地FileWriter fus = new FileWriter("E:\daima\java_day01\src\Demo44\abc");//3、使用Properties集合的方法store,把集合中的临时数据,持久化写入到硬盘中存储prop.store(fus,"save data");// 4、释放资源fus.close();}/*** 使用Properties集合存储数据,遍历去除Properties集合中的数据* Properties集合一个双列集合,key和value默认都是字符串*Properties集合是操作字符串的特有方法* Object setProperty(String key, String value)调用Hashtable的方法put* String getProperty(String key)通过key找到value值,此方法相当于Map集合中的get(key)* set<String> stringPropertyNames()返回此属性列表的键集,此方法相当于Map中的keySet方法*/private static void show01() {//创建集合对象Properties prop = new Properties();//使用setProperty往集合里添加数据prop.setProperty("张靓颖","168");prop.setProperty("迪丽热巴","168");prop.setProperty("古力娜扎","168");//stringPropertyNames()把键取出,存到一个set集合中Set<String> set = prop.stringPropertyNames();//变量set集合,for (String key : set) {String vlaue = Property(key);System.out.println(key + "->" + vlaue );}}
}
package Demo45;import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;/*** java.io.BufferedInputStream extends InputStream* BufferedInputStream:字节缓冲输出流** 继承自父类的方法:* int read()从输入流中读取数据的下一个字节。* int read(byte[] b) 从输入流中读取一定数量的字节,并将 其存储在缓冲区数组b中。* void close()关闭输入流,释放资源* 构造方法:* BufferedInputStream(InputStream in) 创建一个心得缓冲输入流,以将数据写入指定的底层输入流* BufferedInputStream(InputStream in, int size) 创建一个心得缓冲输入流,以将具有指定缓冲区大小的数据写入指定的底层输入流* 参数:* InputStream int:字节输入流,增加一个缓冲区,提高效率* int size:指定缓冲流内部缓冲区的大小* 使用步骤:* 1、创建FileInputStream对象,构造方法中绑定读取的数据源* 2、创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提供效率* 3、使用FileInputStream对象中的方法read,读取文件* 4、释放资源**/
public class DemoBufferedInputStream {public static void main(String[] args) throws IOException {//1、创建FileInputStream对象,构造方法中绑定读取的数据源FileInputStream fis = new FileInputStream("E:\daima\java_day01\src\Demo44\abc");//2、创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提供效率BufferedInputStream bis = new BufferedInputStream(fis);//3、使用FileInputStream对象中的方法read,读取文件
// int len = 0;
// while((len = ad())!=-1){
// System.out.println(len);
// }byte[] bytes = new byte[1024];int len =0;while((len = ad())!=-1){System.out.println(len);}//4、释放资源bis.close();}
}
package Demo45;import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;/*** java.io.BufferedOutputStream extends OutputStream* BufferedOutputStream:字节缓冲输出流** 继承自父类的共性成员方法* public void close():关闭此输出流并释放与此流相关的任何资源* public void flush():刷新此输出流并强制任何缓冲的输出字节被写出* public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流* public void write(byte[] b, int off, int len):从指定的字节数组写入len字节,从偏移量off开始输出到此流* public abstract void write(int b):将指定的字节输出流** 构造方法:* BufferedOutputStream(OutputStream out) 创建一个心得缓冲输出流,以将数据写入指定的底层输出流* BufferedOutputStream(OutputStream out, int size) 创建一个心得缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流* 参数:* OutputStream out:字节输出流,增加一个缓冲区,提高效率* int size:指定缓冲流内部缓冲区的大小* 使用步骤:* 1、创建FileOutputStream对象,构造方法中绑定输出的目的地* 2、创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象,提供效率* 3、使用FileOutputStream对象中的方法write,把数据写入到内部缓冲区中* 4、使用FileOutputStream对象的方法flush把内部缓冲去的数据,刷新到文件中中* 5、释放资源***/public class DemoBufferedOutputStream {public static void main(String[] args) throws IOException {// 1、创建FileOutputStream对象,构造方法中绑定输出的目的地FileOutputStream file = new FileOutputStream("E:\daima\java_day01\src\Demo44\abc");//2、创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象,提供效率BufferedOutputStream buf = new BufferedOutputStream(file);// 3、使用FileOutputStream对象中的方法write,把数据写入到内部缓冲区中buf.write("写到内部缓冲区中".getBytes());// 4、使用FileOutputStream对象的方法flush把内部缓冲去的数据,刷新到文件中中buf.flush();// 5、释放资源buf.close();}
}
package Demo45;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;/*** java.io.BufferedReader extends Reader** 继承父类的共性的成员方法* int read()读取单个单词并返回* int read(char[] cbuf)一次读取多个字符,将字符读入数组* void close() 关闭流,释放资源** 构造方法:* BufferedReader(Reader in)创建一个使用默认大小输入缓冲区的缓冲字符输入流* BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区缓冲字符输入流* 参数:* Reader in:字符输入流,缓冲流给FileReader增加一个缓冲区,提高FileReader的读取效率*特有的成员方法:* String readLine() 读取一个文本行* 行的终止符号:n, r, (rn)* 返回值:包含内容的字符串,不包含任何终止符,如果流已经达到末尾,则返回null** 使用步骤:* 1、创建字符缓冲输入流对象,构造方法中传递字符输入流* 2、使用字符缓冲输入流对象中的方法read/readLine读取文本* 3、释放资源**/
public class DemoBufferedReader {public static void main(String[] args) throws IOException {// 1、创建字符缓冲输入流对象,构造方法中传递字符输入流BufferedReader brs = new BufferedReader(new FileReader("E:\daima\java_day01\src\Demo44\abc"));String len ;while ((len = adLine()) != null){System.out.println(len);}brs.close();}
}
package Demo45;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;/*** java.io.BufferedWriter extends Writer* BufferedWriter字符缓冲输出流* 继承父尅的共性方法;* 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()关闭此流,但要先刷新它** 构造方法:* BufferWriter(writer out)创建一个使用默认大小输出缓冲区字符输出流* BufferWriter(writer out, int sz)创建一个使用给定大小输出缓冲区的新缓冲自负输出流* 参数:* Writer out:字符输出流,缓冲流给FileWriter增加一个缓冲区,提高FileWriter的写入效率* int sz:指定缓冲区的大小,不写就是默认大小* 特有的成员方法:* void newline写入一个行分隔符,会根据不同的操作系统,获取不同的行分隔符** 使用步骤:* 1、创建一个字符缓冲输出流对象,构造方法中传递字符输出流* 2、调用字符缓冲输出流中的方法Writer,把数据自而入内存缓冲区中* 3、调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据,刷新到文件中* 4、释放资源*/
public class DemoBufferWriter {public static void main(String[] args) throws IOException {//1、创建一个字符缓冲输出流对象,构造方法中传递字符输出流BufferedWriter bw = new BufferedWriter(new FileWriter("E:\daima\java_day01\src\Demo44\abc"));//2、调用字符缓冲输出流中的方法Writer,把数据自而入内存缓冲区中for (int i = 0; i < 10; i++) {bw.write("我爱你");bw.newLine();}bw.close();}
}
本文发布于:2024-01-31 20:03:43,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170670262331024.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |