/**
需求:前几天,我就看到有人在这里发一个无规律的图形,问如何打印?
感想:
我们往控制台打印图形,是用ascii码打印的。
对于一些有规律的图形,我们可以用对应规律的控制语句进行打印
可是,当图形复杂且没有规律时,或者就只是图形规律非常复杂难找,
那我们该怎么办呢?为了减少大家的挠耳抓腮时的痛苦,现在我给大家
提供一个投机取巧的办法。
思路:
我们为何不这样考虑,找一个记事本,照着那个图形描一下。
(大家有没有发现控制台的页面和记事本的页面的结构都是差不多的。)
然后,再用输入输出语句把记事本里的东西原封不动的搬到控制台上呢?
(小小的注意:有些ascii码不能在记事本中显示,但是我们可以用相应的数字代替)
实例:
下面的代码与图形是我做的一个实例:
这是记事本c:\\ascii.txt里的内容
222
22 22
22 22
33 33 33 33
3333 33 3333
33 3 3333 3333
33 33 33
33 33
33 33
333333333333
这是在控制台显示的效果。
*/
import java.io.*;
class PrintCopy
{
public static void main(String[] args) throws IOException
{
//建立输入流,设置源文件"c:\\ascii.txt"。
BufferedReader bfr =
new BufferedReader(new FileReader("c:\\ascii.txt"));
//建立输出流,把控制台当做输出终端。
BufferedWriter bfw =
new BufferedWriter(new OutputStreamWriter(new PrintStream(System.out)));
String line = null;
while ((line=bfr.readLine())!=null)//输入一行字符串
{
//将字符串转成字符数组
char[] chs = line.toCharArray();
//将数字字符转成相应的ascii码输出
for(int i= 0; i<chs.length ;i++)
{
if(chs[i]=='3')
chs[i] = (char)3;
if(chs[i]=='2')
chs[i] = (char)2;
bfw.write(chs[i]);//输出单个字符
}
bfw.newLine();//输出行终止符
}
//关闭流
bfw.close();
bfr.close();
}
}
|