原理:
代码清单:
BigChar
public class BigChar { //字符名称 private char charname; //大型字符 # . \n 组成 private String fontdata; public BigChar(char charname){ this.charname = charname; try{ BufferedReader reader = new BufferedReader(new FileReader("d:/"+charname+".txt")); String line; StringBuffer buf = new StringBuffer(); while ((line=reader.readLine())!=null){ buf.append(line); buf.append("\n"); } reader.close(); this.fontdata = buf.toString(); }catch (IOException e){ e.printStackTrace(); } } public void print(){ System.out.println(fontdata); } }
BigCharFactory
public class BigCharFactory { //管理已经生成的 bigchar 实例 private HashMap pool = new HashMap(); //Singleton private static BigCharFactory singleton = new BigCharFactory(); //构造函数 private BigCharFactory(){ } public static BigCharFactory getInstance(){ return singleton; } public synchronized BigChar getBigChar(char charname){ BigChar bc = (BigChar)pool.get(""+charname); if(bc == null){ bc = new BigChar(charname); pool.put(""+charname,bc); } return bc; } }
BigString
public class BigString { //"大型字符" private BigChar[] bigChars; public BigString(String string){ bigChars = new BigChar[string.length()]; BigCharFactory factory = BigCharFactory.getInstance(); for(int i=0;i<bigChars.length;i++){ bigChars[i] = factory.getBigChar(string.charAt(i)); } } //显示 public void print(){ for(int i=0;i<bigChars.length;i++){ bigChars[i].print(); } } }
Main
public class Main { public static void main(String[] args){ BigString bs = new BigString("c"); bs.print(); } }
原文:https://www.cnblogs.com/baizhuang/p/10537347.html