返回顶部

收藏

使用java在控制台上打印出“陈”字

更多

思路:使用FileReader类读取文本文件中的内容到一个StringBuffer对象中,并将其打印到屏幕上。代码文件:PrintChenApplicati on.java ChenOperator.java数据文件:华文楷体.txt 华文隶书.txt 宋体.txt 幼圆.txt 方正舒体.txt 黑体.txt-->编译成字节码javac PrintChenApplication.java ChenOperator.java-->运行参数解释:参数一为:用以填充的字符 参数二为:字体样式字体样式包括:kt --华文楷体 ls --华文隶书 st --宋体 yy --幼圆 fs --方正舒体 ht --黑体无参的情况:填充字符为“#”,字体样式为:“ls --华文隶书”

1.png

imgs/asCode/02092623_jnps.png

2.png

imgs/asCode/02092623_CZNR.png

有参的情况:填充字符为“@”,字体样式为:“kt --华文楷体”

imgs/asCode/02092631_lVuT.png

PrintChenApplication.java

// 默认使用文件中的字符   华文隶书字体  没有参数或对应的参数不合法  
// 包含一个参数且该参数合法   使用该参数的第一个字符  

public class PrintChenApplication  
{  
   public enum FontType  
   {  
       FONT_LS,        // 隶书  
       FONT_ST,        // 宋体 
        FONT_FS,        // 方正舒体 
        FONT_YY,        // 幼圆 
        FONT_HT,        // 黑体 
        FONT_KT,        // 楷体 

        FONT_UNKNOWN;    // 不明类型 
    } 

    // 参数1   获取填充字符 
    public static char getFillChar(String arg) 
    { 
        int ch = (int)arg.charAt(0); 
        if ((ch>0x20) && (ch<0x7F))  // 在此区间为可见字符 
            return (char)ch; 

        return '#'; 
    } 

    // 参数2  获取字体类型 
    public static FontType getFontType(String arg) 
    {     
        if (0==arg.compareToIgnoreCase("ls")) 
            return FontType.FONT_LS; 
        else if (0==arg.compareToIgnoreCase("st")) 
            return FontType.FONT_ST; 
        else if (0==arg.compareToIgnoreCase("fs")) 
            return FontType.FONT_FS; 
        else if (0==arg.compareToIgnoreCase("yy")) 
            return FontType.FONT_YY; 
        else if (0==arg.compareToIgnoreCase("ht")) 
            return FontType.FONT_HT; 
        else if (0==arg.compareToIgnoreCase("kt")) 
            return FontType.FONT_KT; 

        // 默认为 隶书 
        return FontType.FONT_LS; 
    } 

    public static void main(String arg[]) 
    { 
        char fill_ch         = '#'; 
        FontType font_type     = FontType.FONT_LS; 

        int arg_length = arg.length; 
        if (arg_length==1) 
            fill_ch = getFillChar(arg[0]); 
        else if(arg_length>1) 57         { 
            fill_ch = getFillChar(arg[0]); 
            font_type = getFontType(arg[1]); 
        } 

        boolean read_success = false; 
        ChenOperator chen = new ChenOperator(); 
        // 读取字符文件 
        switch (font_type) 
        { 
        case FONT_LS : 
            read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\华文隶书.txt"); 
            break; 
        case FONT_ST : 
            read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\宋体.txt"); 
            break; 
        case FONT_FS : 
            read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\方正舒体.txt"); 
            break; 
        case FONT_YY : 
            read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\幼圆.txt"); 
            break; 
        case FONT_HT : 
            read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\黑体.txt"); 
            break; 
        case FONT_KT : 
            read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\华文楷体.txt"); 
            break; 
        default: 
            read_success = chen.readTxtFile("F:\\JavaTest\\jdk\\files\\华文隶书.txt"); 
            break; 
        } 

        // 文件读取失败,直接返回 
        if (!read_success) 
        { 
            System.out.println("读取文件失败!"); 
            return; 
        } 

        // 打印出字符 
        chen.printChars(fill_ch); 
    }
 }

ChenOperator.java

//package PrintChen; 

import java.io.*; 
//import java.lang.*; 

public class ChenOperator 
{ 
   public ChenOperator()
    {
        m_chars = new StringBuffer();
    }

    // 读取字符文件
    public boolean readTxtFile(String path)
    {
        if (null==path)
            return false;

        FileReader file_reader = null;
        try{
            file_reader = new FileReader(path);
        }
        catch(FileNotFoundException nfe)
        {
            System.out.println("Not Find the file: "+path+"! Please Check the file whether exists.");27             return false;
        }
        catch(Exception e)
        {
            System.out.println("Unknown Exception.");
            return false;
        }

        readChars(file_reader);

        try{
            file_reader.close();
        }
        catch(IOException ioe)
        {
            System.out.println("Close file failed!");
            return false;
        }

        return true;
    }
    // 打印字符
    public void printChars(char c)
    {
        if (c!='#')
        {
            int length = m_chars.length();
            for (int i=0; i<length; i++)
            {
                if ('#'==m_chars.charAt(i))
                    m_chars.setCharAt(i, c);
            }    
        }

        System.out.println(m_chars.toString());
    }
    // 获取字符窜
    public String getChars()
    {
        return m_chars.toString();
    }

    // --------------------------------------
    private void readChars(FileReader rd)
    {
        int ch = 0;
        try{
            while(-1!=(ch=rd.read()))
            {
                m_chars.append((char)ch);
            }
        }
        catch(IOException e)
        {
            System.out.println("IO Exception.");
            return;
        }
    }

    // 字符数据
    private StringBuffer m_chars;

}

标签:字体,精华

收藏

0人收藏

支持

0

反对

0