使用java编写控制台程序,在屏幕上打印出“陈”字

这次"java语言程序设计"的一次作业,比较简单,现在把代码贴在这里。
使用的是jdk1.6。
-----------------------------------------------------------------------------------------
思路:使用FileReader类读取文本文件中的内容到一个StringBuffer对象中,并将其打印到屏幕上。

代码文件:PrintChenApplication.java  ChenOperator.java

数据文件:华文楷体.txt

         华文隶书.txt

         宋体.txt

         幼圆.txt

         方正舒体.txt

         黑体.txt

 

-->编译成字节码

javac PrintChenApplication.java ChenOperator.java

-->运行

参数解释:参数一为:用以填充的字符  参数二为:字体样式

字体样式包括:kt --华文楷体

                   ls --华文隶书

                   st --宋体

                   yy --幼圆

                   fs --方正舒体

                   ht --黑体

 

无参的情况:填充字符为“#”,字体样式为:“ls --华文隶书”

 

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

 

PrintChenApplication.java
 
   
1 // 默认使用文件中的字符 华文隶书字体 没有参数或对应的参数不合法
2   // 包含一个参数且该参数合法 使用该参数的第一个字符
3  
4   public class PrintChenApplication
5 {
6 public enum FontType
7 {
8 FONT_LS, // 隶书
9 FONT_ST, // 宋体
10 FONT_FS, // 方正舒体
11 FONT_YY, // 幼圆
12 FONT_HT, // 黑体
13 FONT_KT, // 楷体
14
15 FONT_UNKNOWN; // 不明类型
16 }
17
18 // 参数1 获取填充字符
19 public static char getFillChar(String arg)
20 {
21 int ch = ( int )arg.charAt( 0 );
22 if ((ch > 0x20 ) && (ch < 0x7F )) // 在此区间为可见字符
23 return ( char )ch;
24
25 return ' # ' ;
26 }
27
28 // 参数2 获取字体类型
29 public static FontType getFontType(String arg)
30 {
31 if ( 0 == arg.compareToIgnoreCase( " ls " ))
32 return FontType.FONT_LS;
33 else if ( 0 == arg.compareToIgnoreCase( " st " ))
34 return FontType.FONT_ST;
35 else if ( 0 == arg.compareToIgnoreCase( " fs " ))
36 return FontType.FONT_FS;
37 else if ( 0 == arg.compareToIgnoreCase( " yy " ))
38 return FontType.FONT_YY;
39 else if ( 0 == arg.compareToIgnoreCase( " ht " ))
40 return FontType.FONT_HT;
41 else if ( 0 == arg.compareToIgnoreCase( " kt " ))
42 return FontType.FONT_KT;
43
44 // 默认为 隶书
45 return FontType.FONT_LS;
46 }
47
48 public static void main(String arg[])
49 {
50 char fill_ch = ' # ' ;
51 FontType font_type = FontType.FONT_LS;
52
53 int arg_length = arg.length;
54 if (arg_length == 1 )
55 fill_ch = getFillChar(arg[ 0 ]);
56 else if (arg_length > 1 )
57 {
58 fill_ch = getFillChar(arg[ 0 ]);
59 font_type = getFontType(arg[ 1 ]);
60 }
61
62 boolean read_success = false ;
63 ChenOperator chen = new ChenOperator();
64 // 读取字符文件
65 switch (font_type)
66 {
67 case FONT_LS :
68 read_success = chen.readTxtFile( " F:\\JavaTest\\jdk\\files\\华文隶书.txt " );
69 break ;
70 case FONT_ST :
71 read_success = chen.readTxtFile( " F:\\JavaTest\\jdk\\files\\宋体.txt " );
72 break ;
73 case FONT_FS :
74 read_success = chen.readTxtFile( " F:\\JavaTest\\jdk\\files\\方正舒体.txt " );
75 break ;
76 case FONT_YY :
77 read_success = chen.readTxtFile( " F:\\JavaTest\\jdk\\files\\幼圆.txt " );
78 break ;
79 case FONT_HT :
80 read_success = chen.readTxtFile( " F:\\JavaTest\\jdk\\files\\黑体.txt " );
81 break ;
82 case FONT_KT :
83 read_success = chen.readTxtFile( " F:\\JavaTest\\jdk\\files\\华文楷体.txt " );
84 break ;
85 default :
86 read_success = chen.readTxtFile( " F:\\JavaTest\\jdk\\files\\华文隶书.txt " );
87 break ;
88 }
89
90 // 文件读取失败,直接返回
91 if ( ! read_success)
92 {
93 System.out.println( " 读取文件失败! " );
94 return ;
95 }
96
97 // 打印出字符
98 chen.printChars(fill_ch);
99 }
100 };

 

ChenOperator.java
 
   
1 // package PrintChen;
2
3 import java.io. * ;
4 // import java.lang.*;
5
6
7 public class ChenOperator
8 {
9 public ChenOperator()
10 {
11 m_chars = new StringBuffer();
12 }
13
14 // 读取字符文件
15 public boolean readTxtFile(String path)
16 {
17 if ( null == path)
18 return false ;
19
20 FileReader file_reader = null ;
21 try {
22 file_reader = new FileReader(path);
23 }
24 catch (FileNotFoundException nfe)
25 {
26 System.out.println( " Not Find the file: " + path + " ! Please Check the file whether exists. " );
27 return false ;
28 }
29 catch (Exception e)
30 {
31 System.out.println( " Unknown Exception. " );
32 return false ;
33 }
34
35 readChars(file_reader);
36
37 try {
38 file_reader.close();
39 }
40 catch (IOException ioe)
41 {
42 System.out.println( " Close file failed! " );
43 return false ;
44 }
45
46 return true ;
47 }
48 // 打印字符
49 public void printChars( char c)
50 {
51 if (c != ' # ' )
52 {
53 int length = m_chars.length();
54 for ( int i = 0 ; i < length; i ++ )
55 {
56 if ( ' # ' == m_chars.charAt(i))
57 m_chars.setCharAt(i, c);
58 }
59 }
60
61 System.out.println(m_chars.toString());
62 }
63 // 获取字符窜
64 public String getChars()
65 {
66 return m_chars.toString();
67 }
68
69 // --------------------------------------
70 private void readChars(FileReader rd)
71 {
72 int ch = 0 ;
73 try {
74 while ( - 1 != (ch = rd.read()))
75 {
76 m_chars.append(( char )ch);
77 }
78 }
79 catch (IOException e)
80 {
81 System.out.println( " IO Exception. " );
82 return ;
83 }
84 }
85
86 // 字符数据
87 private StringBuffer m_chars;
88
89 };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值