• 字符流


      1 范例:
      2 public class PetDemo {
      3     public static void main(String[] args) throws IOException {
      4         BufferedWriter bw = null;
      5         BufferedReader br = null;
      6         BufferedWriter modify_bw = null;
      7         try {
      8             //1.创建模板文件
      9             bw = new BufferedWriter(new FileWriter(new File("E:\Java实训课总结\2016.3.26" + File.separator + "pet.template")));
     10             bw.write("替换前:");
     11             bw.append("您好!我的名字是{name},我是一只{type}。我的主人是{master}。");
     12             bw.flush();
     13             //2.读取模板文件的信息
     14             br = new BufferedReader(new FileReader("E:\Java实训课总结\2016.3.26" + File.separator + "pet.template"));
     15             String line = br.readLine(); ★★★同一个对象,readLine每用到一次 ,就是一行!!!★★★
     16             System.out.println(line);
     17             //3.替换文件信息后,写入新的文本文件中
     18             String modify_line = line;
     19             modify_line = line.replace("替换前:", "替换后:");
     20             ★★★每次更新内容就赋值一次!!!★★★
     21             modify_line = modify_line.replace("{name}", "lili");
     22             modify_line = modify_line.replace("{type}", "拉布拉多");
     23             modify_line = modify_line.replace("{master}", "王刚");
     24             System.out.println(modify_line);
     25             modify_bw = new BufferedWriter(new FileWriter(new File("E:\Java实训课总结\2016.3.26" + File.separator + "pet.txt")));
     26             modify_bw.append(modify_line);
     27             modify_bw.flush();
     28         } catch (IOException e) {
     29             e.printStackTrace();
     30         } finally {
     31             modify_bw.close();
     32             br.close();
     33             bw.close();
     34         }
     35     }
     36 }
     37 
     38 
     39 范例1:/*方法1:UUID*/
     40 public class FileMethodDemo {
     41     public void creatFileFolder(String path) throws IOException{
     42         File file = new File(path);
     43         if (!file.exists()) {
     44             //创建文件夹
     45             file.mkdir();
     46             System.out.println("创建文件成功!");
     47         }
     48     }
     49     
     50     public void creatFile(String fileName) throws IOException{
     51         File file = new File(fileName);
     52         if (!file.exists()) {
     53             //创建文件
     54             file.createNewFile();
     55             System.out.println("创建文件成功!");
     56         }
     57     }
     58     
     59     //删除文件
     60     public void delFile(String fileName){
     61         File file = new File(fileName);
     62         if (file.exists()) {
     63             file.delete();
     64             System.out.println("删除文件成功!");
     65         }
     66     }
     67     
     68     //清理文件
     69     public void delAllFile(String path){
     70         File file = new File(path);
     71         if (file.exists()) {
     72             file.delete();
     73         }
     74     }
     75 }
     76 
     77 //测试
     78 public class D_demotxt {
     79     public static void main(String[] args) throws IOException {
     80         FileMethodDemo fm = new FileMethodDemo();    //调用FileMethodDemo中的方法
     81         String path = "E:\Java实训课总结\2016.3.25\Demo100";
     82         //清理文件中的已有的文件
     83         fm.delAllFile(path);
     84         try {
     85             //1.创建文件夹
     86             fm.creatFileFolder(path);
     87             //2.创建文件
     88             ArrayList<String> nameArr = new ArrayList<String>();
     89             //随机唯一的名字,放在集合中
     90             for (int i = 0; i < 100; i++) {
     91                 UUID uuid = UUID.randomUUID();
     92                 String fileName = uuid.toString();
     93                 nameArr.add(fileName);
     94             }
     95             
     96             //3.生成100个文件名字
     97             for (int i = 0; i < nameArr.size(); i++) {
     98                 String filepath = path + File.separator + nameArr.get(i) + ".txt";
     99                 fm.creatFile(filepath);
    100             }
    101             
    102             //3.找出开头a的文件
    103             for (int i = 0; i < 100; i++) {
    104                 if (nameArr.get(i).startsWith("a")) {
    105                     String str = path + File.separator + nameArr.get(i) + ".txt";
    106                     fm.delFile(str);
    107                     System.out.println(str);
    108                 }
    109             }
    110         } catch (IOException e) {
    111             e.printStackTrace();
    112         }
    113     }    
    114 }
    115 
    116 
    117 范例1:/*方法2:Map*/
    118 /*学生类*/
    119 public class Student {
    120     private String name;
    121     private String[] xin = new String[]{"丁","王","徐","汤","独孤","李"};
    122     private String[] ming = new String[]{"强","求败","建国","援朝","翠花","狗蛋","嫚","凯","程琳"};
    123     
    124     public Student(){
    125         Random rd = new Random();
    126         this.name = xin[rd.nextInt(xin.length)] + ming[rd.nextInt(ming.length)];
    127     }
    128     
    129     public String getName() {
    130         return name;
    131     }
    132     public void setName(String name) {
    133         this.name = name;
    134     }
    135 }
    136 
    137 /*测试类*/
    138 public class ImproveDulName {
    139     public static void main(String[] args){
    140         Map<Integer, Student> map = new HashMap<Integer, Student>();
    141         /*存数据*/
    142         for (int i = 0; i <= 15; i++) {
    143             map.put(i, new Student());
    144         }
    145         //标识重复的名字
    146         String dulName = null;
    147         for (int j = 0; j < map.size(); j++) {
    148             for (int j2 = j+1; j2 < map.size(); j2++) {
    149                 if (map.get(j).getName().equals(map.get(j2).getName())) {
    150                     map.get(j).setName(map.get(j).getName() + "*");
    151                     map.put(j, map.get(j));
    152                     if (map.get(j2).getName().startsWith("徐")) {
    153                         System.out.println("学号:" + (j2 + 1) + "," + map.get(j2).getName());
    154                     }
    155                     break;
    156                 } else{
    157                     map.put(j, map.get(j));
    158                 }
    159             }
    160         }
    161     
    162         //构建字符流对象
    163         BufferedWriter bw = null;
    164         try {
    165             bw = new BufferedWriter(new FileWriter("E:\Java实训课总结\2016.3.24\ImprovedulplicateName.txt"));
    166             for (int j = 0; j < map.size(); j++) {
    167                 bw.append("学号:" + (j + 1) + "," + map.get(j).getName());
    168                 bw.newLine();
    169                 bw.flush();
    170             }
    171         } catch (Exception e) {
    172             e.printStackTrace();
    173         } finally {
    174             try {
    175                 bw.close();
    176             } catch (IOException e) {
    177                 e.printStackTrace();
    178             }
    179         }
    180     }    
    181 }
    182 
    183 
    184 范例1:/*方法3:重复3次以上的名字打星号*/
    185 /*学生类*/
    186 public class Student {
    187     private String familyName;
    188     private String givenName;
    189     private int flag;//重名的标记
    190     private String name;
    191     private int count;
    192     
    193     public Student(){
    194         //随机填充一个名字
    195         Random rd = new Random();
    196         this.familyName = MyUtil.familyName[rd.nextInt(MyUtil.familyName.length)];
    197         this.givenName = MyUtil.givenName[rd.nextInt(MyUtil.givenName.length)];
    198         this.flag = 0;//假设初始的状态都不同
    199         this.name = this.familyName + this.givenName;
    200         this.count = 1;
    201     }
    202 
    203     public Student(String familyName, String givenName, int flag) {
    204         this.familyName = familyName;
    205         this.givenName = givenName;
    206         this.flag = flag;
    207         this.name = this.familyName + this.givenName;
    208         this.count = 1;
    209     }
    210     
    211     @Override
    212     public String toString() {
    213         return "Student [familyName=" + familyName + ", givenName=" + givenName + ", flag=" + flag + ", name=" + name
    214                 + ", count=" + count + "]";
    215     }
    216 
    217     public String getName() {
    218         return name;
    219     }
    220     public void setName() {
    221         this.name = this.familyName + this.givenName;
    222     }
    223     public String getFamilyName() {
    224         return familyName;
    225     }
    226     public void setFamilyName(String familyName) {
    227         this.familyName = familyName;
    228     }
    229     public String getGivenName() {
    230         return givenName;
    231     }
    232     public void setGivenName(String givenName) {
    233         this.givenName = givenName;
    234     }
    235     public int getFlag() {
    236         return flag;
    237     }
    238     public void setFlag(int flag) {
    239         this.flag = flag;
    240     }
    241     public int getCount() {
    242         return count;
    243     }
    244     public void setCount(int count) {
    245         this.count = count;
    246     }
    247 
    248     //测试
    249     public static void main(String[] args) {
    250         List<Student> al = new ArrayList<Student>();
    251         for (int i = 0; i < 50; i++) {
    252             Student stu = new Student();
    253             al.add(stu);
    254             System.out.println(stu);
    255         }
    256         
    257         StudentOP sop = new StudentOP();
    258 //        sop.changeFlagforDulName(al);
    259         sop.changeFlagforThrName(al);
    260         //测试修改成功与否
    261         for (Student stu : al) {
    262             System.out.println(stu);
    263         }
    264         
    265         //测试写文件
    266         sop.WriteToTxt(al);
    267     }
    268 }
    269 /*学生操作类*/
    270 public class StudentOP {
    271     //1.对学生对象的姓名重复的,把flag重置为1
    272     public void changeFlagforDulName(List<Student> stuArr){
    273         //遍历数组,把重名的flag重置为1
    274         for (int i = 0; i < stuArr.size(); i++) {
    275             for (int j = i + 1; j < stuArr.size(); j++) {
    276                 if (stuArr.get(i).getName().equals(stuArr.get(j).getName())) {
    277                     stuArr.get(i).setFlag(1);
    278 //                    stuArr.get(j).setFlag(1);
    279                 }
    280             }
    281         }
    282     }
    283     
    284     //2.重复三次的姓名标记
    285     public void changeFlagforThrName(List<Student> stuArr){
    286         //遍历数组,把重名的flag重置为1
    287         changeFlagforDulName(stuArr);
    288         for (int i = 0; i < stuArr.size(); i++) {
    289             int count = stuArr.get(i).getCount();
    290             for (int j = i + 1; j < stuArr.size(); j++) {
    291                 if (stuArr.get(i).getName().equals(stuArr.get(j).getName())) {
    292                     stuArr.get(i).setCount(++count);
    293                     int my = stuArr.get(i).getCount();
    294                     stuArr.get(j).setCount(my);
    295                 }
    296             }
    297         }
    298     }
    299     
    300     public void WriteToTxt(List<Student> stuArr){
    301         BufferedWriter bw = null;
    302         try {
    303             bw = new BufferedWriter(new FileWriter("E:\Java实训课总结\2016.3.28\100rd_name.txt"));
    304             for (Student stu : stuArr) {
    305 //                if (stu.getFlag() == 1) {
    306                 if (stu.getCount() == 3) {
    307                     bw.write(stu.getName() + "*");
    308                 } else {
    309                     bw.write(stu.getName());
    310                 }
    311                 bw.newLine();
    312             }
    313         } catch (IOException e) {
    314             e.printStackTrace();
    315         } finally {
    316             try {
    317                 bw.flush();
    318                 bw.close();
    319             } catch (IOException e) {
    320                 e.printStackTrace();
    321             }
    322         }
    323     }
    324 }
    325 /*随机姓和名类*/
    326 public class MyUtil {
    327     public static String[] familyName = {"王","李","徐","温","张","刘"};
    328     public static String[] givenName = {"丽丽","峰","仲基","嫚","学友","佳丽","凯"};
    329 }
  • 相关阅读:
    SEO优化---学会建立高转化率的网站关键词库
    从一个程序员的角度看——微信小应用
    当AngularJS POST方法碰上PHP
    angularJS(6)
    彻底解决显示Opencv中Mat图像到Mfc窗口问题
    数据结构与算法基础总结
    java类别问题
    java基础知识
    逻辑地址、线性地址、物理地址和虚拟地址的区别
    TCP协议中的三次握手和四次挥手(图解)
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/5330535.html
Copyright © 2020-2023  润新知