第六章Java输入输出1、说明程序功能:importjava.io.*;publicclassCharWrite{publicstaticvoidmain(Stringargs[]){try{FileWriterfw=newFileWriter(charset.txt);for(inti=32;i126;i++)fw.write(i);fw.close();}catch(IOExceptione){}}}答:向文件charset.txt中输入ASCII码从32到126共94个字符。2、先用随机函数产生出任意的20个整数,再按由小到大的顺序排序,然后将结果写入一个文件中,最后从该文件中读出后显示出来。请分别用顺序文件和随机文件的读写形式进行编程测试。代码:importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.Random;publicclassRandNum{publicstaticvoidmain(Stringargs[]){Randomrand=newRandom();//实例化一个产生随机数的类int[]num=newint[20];//定义一个整型数组,用来存储产生的随机数intr=0;//随机数for(inti=0;inum.length;i++){r=rand.nextInt(1000);//产生一个1000以内的随机数//放入数组num[i]=r;}intk;//进行排序for(inti=0;inum.length;i++){for(intj=0;ji;j++){if(num[i]num[j]){k=num[i];num[i]=num[j];num[j]=k;}}}RandNumrn=newRandNum();//写入文件rn.WriteFile(src/123,num);//读取文件int[]x=rn.ReadFile(src/123);//读取的数组for(inti=0;inum.length;i++){System.out.print(x[i]+\t);if(i%5==4)System.out.println();}}/***读取文件的方法*@parampath*/publicint[]ReadFile(Stringpath){inta[]=null;try{//实例化一个File输入流对象InputStreamis=newFileInputStream(path);//实例化一个Buffer输入流对象BufferedInputStreambs=newBufferedInputStream(is);intlength=bs.available();//读取第一个为数组大小intk=bs.read();//用来计数intcount=0;//实例化数组a=newint[k];Stringstr=;//中间变量for(inti=0;ilength;i++){//继续读取k=bs.read();//若读取的不是换行if(k!=13&&k!=10&&k!=-1){//读取到空格while(k!=32){str+=(char)k;k=bs.read();}//把字符串里的数字转换成整型放入数组中a[count]=Integer.parseInt(str);count++;str=;//清空字符串}}is.close();bs.close();System.out.println(读取成功);}catch(FileNotFoundExceptione){System.out.println(找不到指定文件,请确认文件路径);}catch(IOExceptione){e.printStackTrace();}returna;}/***写入文件*@parampath路径*@parama数组*/publicvoidWriteFile(Stringpath,int[]a){try{//实例化一个File输出流OutputStreamos=newFileOutputStream(path);//实例化一个Buffered输出流BufferedOutputStreambos=newBufferedOutputStream(os);//写入数组大小bos.write(a.length);//写入换行符bos.write(13);bos.write(10);//循环写入数组的值for(inti=0;ia.length;i++){bos.write(Integer.toString(a[i]).getBytes());//写入1个空格bos.write(32);bos.flush();}bos.close();os.close();System.out.println(写入成功);}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}截图3、统计一个文本文件中单词的个数。文本文件的名字从命令行中获得。代码importjava.io.FileReader;importjava.io.IOException;importjava.util.StringTokenizer;publicclasstest{publicstaticvoidmain(String[]args)throwsIOException{FileReaderfileReader=newFileReader(args[0]);StringBufferstringBuffer=newStringBuffer();char[]b=newchar[506];while(fileReader.read(b,0,505)!=-1){stringBuffer.append(b);}StringTokenizerstringTokenizer=newStringTokenizer(stringBuffer.toString());System.out.println(文本文件中单词的个数为:+stringTokenizer.countTokens());}}结果截图第七章Java图形用户界面1、阅读下面的程序,回答问题。importjava.awt.*;importjavax.swing.*;publicclassTextendsJFrame{publicT(){super(GridLayout);Containercon=this.getContentPane();con.setLayout(newGridLayout(2,3));con.add(newJButton(a));con.add(newJButton(b));con.add(newJButton(c));con.add(newJButton(d));con.add(newJButton(e));con.add(newJButton(f));setSize(200,80);setVisible(true);}publicstaticvoidmain(Stringargs[]){newT();}}画图表示程序运行后的图形界面。如果程序通过实现某个接口处理按钮的动作事件,则该接口名为何?接口中的方法头声明如何?答:实现的接口是ActionListener,该接口的方法声明是publicvoidactionPerformed(ActionEvente)2、编写一个简单的计算器,要求图形用户界面如下图所示。代码importjava.awt.BorderLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.HashSet;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassjisuanqi{publicstaticvoidmain(String[]args){newMyCalculator();}}classMyCalculator{privatedoubleresult=0.0;privateStringstring=;privateJTextFieldjtext=newJTextField(,15);String[]str=newString[]{Clear,+,0,1,2,3,-,*,.,4,5,6,/,%,=,7,8,9};publicMyCalculator(){JFrameframe=newJFrame(calculator);frame.setBounds(400,200,450,250);JPaneljp=newJPanel(newGridLayout(3,6,10,10));frame.setLayout(newBorderLayout());frame.add(jtext,BorderLayout.NORTH);frame.add(jp,BorderLayout.CENTER);finalHashSethashSet=newHashSet();classMyEventimplementsActionListener{publicvoidactionPerformed(ActionEvente){for(Objectk:hashSet){if(e.getSource()==k){JButtonjb=(JButton)k;if(jb.getText()==Clear)jtext.setText();elsejtext.setText(jtext.getText()+jb.getText());if(jb.getText()===){char[]c=jtext.getText().toCharArray();inti;for(i=0;ic.length;i++){if(c[i]=='+'||c[i]=='-'||c[i]=='*'||c[i]=='/'||c[i]=='%')break;}Stringastr=String.copyValueOf(c,0,i);Stringbstr=String.copyValueOf(c,i+1,c.length-i-2);MyComputemycompute=newMyCompute();result=mycompute.compute(Double.parseDouble(astr),Double.parseDouble(bstr),c[i]);jtext.setText(+result);}}}}}for(inti=0;i18;i++){JButtonb=newJButton(str[i]);jp.add(b);b.addActionListener(newMyEvent());hashSet.add(b);}frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}classMyCompute{privatedoubleresult=0.0;publicMyCompute(){}publicdouble