可可西

使用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 };

posted on 2010-11-06 15:02  可可西  阅读(4227)  评论(3编辑  收藏  举报

导航