zoukankan      html  css  js  c++  java
  • 适配器模式的应用

    1.适配源类:java.util.Properties

    2.适配目标类:FileIO

    3.适配器 FileProperties

    package fileio;
    
    import java.io.IOException;
    
    public interface FileIO {
        public void readFromFile(String fileName) throws IOException;
        
        public void writeToFile(String fileName) throws IOException;
        
        public void setValue(String key , String value);
        
        public String getValue(String key);
    }
    package fileio;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Properties;
    
    public class FileProperties implements FileIO {
        
        
        private Properties p;
        
        public FileProperties(Properties p) {
            this.p = p;
        }
        
        @Override
        public void readFromFile(String fileName) throws IOException {
            p.load(new FileInputStream(new File(fileName)));
        }
    
        @Override
        public void writeToFile(String fileName) throws IOException {
            p.store(new FileOutputStream(new File(fileName)), "");
        }
    
        @Override
        public void setValue(String key, String value) {
            p.setProperty(key, value);
        }
    
        @Override
        public String getValue(String key) {
            return p.getProperty(key);
        }
    
    }
    package fileio;
    
    import java.io.IOException;
    import java.util.Properties;
    
    public class Client {
        public static void main(String[] args) {
            FileIO fi = new FileProperties(new Properties());
            try {
                fi.readFromFile("test.txt");
                fi.setValue("name", "tisa");
                fi.setValue("age", "12");
                fi.setValue("school", "CCNU");
                
                fi.writeToFile("out.txt");
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
    }
  • 相关阅读:
    学习鸟哥linux私房菜--安装中文输入法fcitx
    学习鸟哥linux私房菜--安装centos5.6(u盘安装,中文乱码)
    CSS
    vue-cli脚手架搭建项目及Axios封装
    前端面试题套路
    移动端touch事件
    import和require的区别
    接口封装
    js 数组操作
    vue 小记
  • 原文地址:https://www.cnblogs.com/tisakong/p/4708443.html
Copyright © 2011-2022 走看看