【209天】黑马程序员27天视频学习笔记【Day21-下】

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【209天】黑马程序员27天视频学习笔记【Day21-下】脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

叨逼叨两句

@H_406_4@想做NB程序员,还是不要喝酒为妙。

21-(12-13):使用指定码表读写字符+转换流图解

  1. 每个文件都有对应的编码,若你用不同的编码表去读取文件,就会乱码。

  2. 字符流FileReader、FileWrITer都采用默认编码表。直接用来读取文件内容,会用默认编码表进行转换,不成功,写出的文件就乱码,所以还是用字节流FileinputStream读取后再用IputStreamReader转换合适。FileWriter同理。

    【209天】黑马程序员27天视频学习笔记【Day21-下】

  3. InputStreamReader:字节流通向字符流

  4. OutputStreamReader:字符流通向字节流

  5. 若不指定编码表,则为平台默认编码表。

    package com.test.demo001;  import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;  public class Demo009 {     public static void main(String[] args) throws IOException{         //demo01();         InputStreamReader isr = new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8");          OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("GBK.txt"),"gbk");         int c;         while((c = isr.read())!= -1){             osr.write(c);         }         isr.close();         osr.close();              }      PRivate static void demo01() throws FileNotFoundException, IOException {         FileReader fr = new FileReader("GBK.txt");         FileWriter fw = new FileWriter("US-ASCII.txt");         int c;         while((c = fr.read())!= -1){             fw.write(c);         }                  fr.close();         fw.close();     } }
  6. 加上缓冲

    package com.test.demo001;  import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException;  public class Demo009 {     public static void main(String[] args) throws IOException{         //demo01();         //demo02();         BufferedReader br =                  new BufferedReader(new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8"));         BufferedWriter bw =                  new BufferedWriter(new OutputStreamWriter(new FileOutputStream("GBK.txt"),"gbk"));          int c;         while((c = br.read())!= -1){             bw.write(c);         }         br.close();         bw.close();     }      private static void demo02() throws UnsupportedEncodingException, FileNotFoundException, IOException {         InputStreamReader isr = new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8");         OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("GBK.txt"),"gbk");         int c;         while((c = isr.read())!= -1){             osr.write(c);         }         isr.close();         osr.close();     }      private static void demo01() throws FileNotFoundException, IOException {         FileReader fr = new FileReader("GBK.txt");         FileWriter fw = new FileWriter("US-ASCII.txt");         int c;         while((c = fr.read())!= -1){             fw.write(c);         }                  fr.close();         fw.close();     } }

21-14:获取文本上字符出现的次数

package com.test.demo001;  import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.TreeMap;  public class Demo009 {     public static void main(String[] args) throws IOException{         BufferedReader br = new BufferedReader(new FileReader("b.txt"));         TreeMap<Character,Integer> tm = new TreeMap<>();         int ch;         while((ch = br.read())!= -1){             char c = (char)ch;             /*if(!tm.containsKey(c)){                 tm.put(c, 1);             } else {                 tm.put(c, tm.get(c)+1);             }*/             tm.put(c, !tm.containsKey(c)? 1:tm.get(c)+1);             }                 br.close();             BufferedWriter bw = new BufferedWriter(new FileWriter("times.txt"));             for (Character key : tm.keySet()) {                                  switch(key){                 case 't':                     bw.write("\t" + "=" + tm.get(key));                     break;                 case 'n':                     bw.write("\n" + "=" + tm.get(key));                     break;                 case 'r':                     bw.write("\r" + "=" + tm.get(key));                     break;                 default:                     bw.write(key + "=" + tm.get(key));                     break;                 }                 bw.newLine();             }             bw.close();     } }

21-15:试用版软件

package com.test.demo001;  import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;  public class Demo010 {     public static void main(String[] args) throws IOException {         BufferedReader br = new BufferedReader(new FileReader("Config.txt"));         String line = br.readLine();         int times = Integer.parseInt(line);         if(times > 0){             System.out.println("您还有" + times-- + "次机会" );             FileWriter fw = new FileWriter("Config.txt");             fw.write(times + "");             fw.close();         } else {             System.out.println("次数已到");         }          br.close();     } } 

21-16:递归

  1. 递归比较占内存

public static int fun(int nem)     if(num == 1){         return 1;     }else {         return num * fun(num - 1)     }

21-17:递归练习:从键盘输入一个文件夹路径,打印出该文件夹下所有Java文件

package com.test.demo001;  import java.io.File; import java.io.IOException; import java.util.Scanner;  public class Demo010 {     public static void main(String[] args) throws IOException {         File dir = getDir();         printJavaFile(dir);              }      public static File getDir(){         Scanner sc = new Scanner(System.in);         System.out.println("请输入一个文件夹路径");         while(true){             String line = sc.nextLine();             File dir = new File(line);             if(!dir.exists()){                 System.out.println("您录入的文件夹路径不存在,请重新输入");             }else if(dir.isFile()){                 System.out.println("您录入的是文件路径,请重新输入文件夹路径");             }else {                 return dir;             }         }     }          public static void printJavaFile(File dir){         File[] subFiles = dir.listFiles();         for (File subFile : subFiles) {             if(subFile.isFile()&&subFile.getName().endsWith(".jpeg")){                 System.out.println(subFile);             }else if(subFile.isDirectory()){                 printJavaFile(subFile);             }                          }     }  }  

脚本宝典总结

以上是脚本宝典为你收集整理的【209天】黑马程序员27天视频学习笔记【Day21-下】全部内容,希望文章能够帮你解决【209天】黑马程序员27天视频学习笔记【Day21-下】所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。