这里好像不能一次运行太多流,要写成方法的形式
//由于字符流的基本流只能一个一个的读取数据,不方便,所以用字符流的缓冲流读取写入public static void main(String[] args) throws IOException {//读取BufferedReader br=new BufferedReader(new FileReader("D:\\我的世界\\csb.txt"));String s;ArrayList
//将第一种写法的Arraylist改成TreeMap,可以自动根据序号排序public static void main(String[] args) throws IOException {//读取BufferedReader br=new BufferedReader(new FileReader("D:\\我的世界\\csb.txt"));String s;TreeMap
//这个练习的关键就是统计次数,//所以统计次数的变量不能定义在程序中,而是定义在本地文件中//读取本地文件获得运行次数public static void main(String[] args) throws IOException {BufferedReader br=new BufferedReader(new FileReader("D:\\我的世界\\count.txt"));String s = br.readLine();int count = Integer.parseInt(s);count++;BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\我的世界\\count.txt"));bw.write(count+"");//注意,这里写字符串的原因是:// 如果直接写入数字,在写入时会变成数字在字符集中对应的字符,所以写入字符串if(count<=3){System.out.println("第"+count+"次使用免费");}else{System.out.println("开始收费喽!");}bw.close();br.close();}
使用IO流的原则:什么时候用就什么时候创建,什么时候不用就什么时候关闭
转换流
属于字符流的一种高级流
转换流是字符流和字节流之间的桥梁
通过转换输入流()把字节流转换成字符流,这样就可以在转换的过程中让字节流有字符流的特性
写出时,再通过转换输出流()把字符流转成字节流,存储到文件中
转换流的应用场景:
作用1:指定字符集读写数据(在jdk11后被淘汰)
作用2:字节流想要使用字符流的方法
练习:
方法名说明
( is)
把字节流转成字符流
( is, )
把字节流包装成字符流,第二个参数可以指定字符流的字符集
( os)
把字符流包装成字节流
( os, )
把字符流包装成字节流,第二个参数可以指定字符流的字符集,这个方法基本不用
public static void main(String[] args) throws IOException {/*需求1*///了解,在jdk11被淘汰//InputStreamReader isr=new InputStreamReader(new FileInputStream("D:\\我的世界\\one.txt"),"GBK");//int b;//while ((b=isr.read())!=-1){//System.out.print((char)b);//}//isr.close();//掌握,FileReader的构造方法参数//FileReader fr=new FileReader("D:\\我的世界\\one.txt", Charset.forName("GBK"));//int b;//while ((b=fr.read())!=-1){//System.out.print((char)b);//}//fr.close();/*需求2*///了解,在jdk11被淘汰//OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\我的世界\\one.txt"),"GBK");//String s="我好你不好";//osw.write(s);//osw.close();//掌握,FileWriter的构造方法参数//FileWriter fw=new FileWriter("D:\\我的世界\\one.txt",Charset.forName("GBK"));//fw.write("你好你好杨");//fw.close();/*需求3*/FileReader fr=new FileReader("D:\\我的世界\\one.txt", Charset.forName("GBK"));FileWriter fw=new FileWriter("D:\\我的世界\\two.txt");int b;while ((b=fr.read())!=-1){fw.write(b);}fw.close();fr.close();}
- 央视春晚,我眼中的三宗“最” 中国之最节目串词
- 新闻特写拯救“巴斯”:吉尼斯纪录背后的“世界难题” 一 吉尼斯记录心情低落
- 这5种食物是隐藏的“热量炸弹”,小心吃完伤肝脏、毁血管、减寿命 吉尼斯记录热量炸弹
- 全世界“最顶级”的啤酒,却是一群和尚酿的!看完颠覆认知 吉尼斯记录的啤酒
- 视印度女子教育为“新鲜事”的环境下,塞兰坡差会建立的女子学校 吉尼斯记录印度学校
- 十二生肖:成龙的国际影响力能有多大?一部电影让法国归还文物 吉尼斯记录成龙
- 泰勒破纪录共获29座奖杯,身披粉红战袍热辣开唱,逆天长腿太吸睛 泰勒的吉尼斯记录
- 王者荣耀:真相了,排位赛真的段位越高越好打,因为低段位事真多 王者荣耀七大历史之最
- 欧洲杯巡礼之葡萄牙:C罗最后的倔强!卫冕冠军遭法德围剿 葡萄牙欧洲杯历史之最
- 盘点那些不符合发明者想法的发明,你知道几个? 坊子历史之最是谁发明的