【免费下载】实验8输入输出流
《Java面向对象程序设计》实验-实验八(输入输出流)
广西科技大学计通学院《Java面向对象程序设计》实验实验八输入输出流学生姓名:×××学号:×××班级:×××指导老师:×××专业:计算机科学与技术提交日期:×××年×× 月××日实验报告内容1. 实验目的掌握字符输入、输出流用法;掌握使用SCanner类解析文件;掌握COnsole流的使用。
2. 实验内容实验教材-第12章实验1、2、3字符输入输出流;SCanner类和Console类要求:完善程序,给出实验结果截图;完成试验后练习。
3. 程序代码及运行结果:实验1举重成绩单// AnalysisResult.javaimport java.io.*;import java.util.*;PUbIiC class An alysisResult {PUbIiC StatiC void main( Stri ng[] args) {File fRead=new File("score.txt");File fWrite=new File("scoreA nalysis.txt"); try{Writer out=new FiIeWriter(fWrite);BUfferedWriter bufferWrite=newBUfferedWriter(out);Reader in=new FiIeReader(fRead);BUfferedReader bufferRead=newBUfferedReader(i n);String str=n ull;WhiIe((Str=bufferRead.readLi ne())!=null){ doubletotalScore=Fe nxi.getTotalScore(str);Str=St 叶" 总成绩:"+totalScore;SyStem.out.pri ntln( str);bufferWrite.write(str); bufferWrite. newL in e();}bufferRead.close();bufferWrite.close();}CatCh(IOEXCePti on e){SyStem.out.pri ntl n(e.toStri ng());}}}// Fenxi.javaimport java.util.*;PUbIiC class FenXi {PUbIiC StatiC double getTotalScore(Stri ng S) { String regex = "[^0123456789.]";Stri ng digitMess = s.replaceAII(regex,"*");Stri ngToke nizer fenxi = newStri ngToke ni zer(digitMess,"*");double totalScore=0;while(fe nxi.hasMoreToke ns()){doubleSCOre=Double.parseDouble(fe nxi. nextToke n());totalScore=totalScore+score;}return totalScore;// score.txt姓名: 张二, 抓举成绩 106kg, 挺举189kg 姓名: 李四, 抓举成绩 108kg , 挺举186kg 姓名: 周五, 抓举成绩 112kg , 挺举190kg运行结果如图1所示 CatCh(IOEXCePti On exp){SyStem.out.pri ntln (exp.toStri ng());} }void SetFiIeName(Stri ng n ame){姓名:张三,抓举成绩106kg , 姓名:李四,抓举成绩108kg , 姓名:周五,抓举成绩112kg,挺举189kg o 总成绩:295.0 梃举186kg o 总成绩:294.0 挺举190kg o 总成绩:302.0实验2统计英文单词 // WOrdStatiStiC.java import java.io.*; import java.util.*;PUbIiC class WOrdStatiStiC { VeCtOr<Stri ng> allWord, noSameWord;FiIe file=new File("e nglish.txt"); SCanner sc=n ull; String regex; WOrdStatiStiC (){allWord=new VeCtOr<Stri ng>(); no SameWOrd=new VeCtOr<Stri ng>(); regex="[∖∖s ∖∖d ∖∖p{Pu net}]+";// try{sc=new Scann er(file);正则表达式file=new File (n ame);try{sc=new Scann er(file); eDelimiter(regex);}CatCh(IOEXCePti on exp){SyStem.out.pri ntln (exp.toStri ng());}}void WOrdStatiStiC() {try{WhiIe(SC.hasNext()){ String WOrd=SC .n ext();allWord.add(word);if(!no SameWord.c Ontain S(WOrd)) noSameWord.add(word);}}CatCh(EXCePti on e){}}PUbIiC VeCtOr<Stri ng>getAllWord(){ return allWord;}PUbIiC VeCtOr<Stri ng>getNoSameWord(){ return no SameWord;}// OUtPUtWOrdMeSS.javaimport java.util.*;PUbliC class OUtPUtWOrdMeSS {PUbIiC StatiC void main( Stri ng[] args) {VeCtOr<Stri ng> allWord, noSameWord;WOrdStatiStiC StatiStiC=newWOrdStatiStiC();StatiStiC.setFileName("hello.txt");StatiStiC.WordStatistic();allWord=statistic.getAllWord();no SameWOrd=StatiStiC.getNoSameWord();SyStem.out.pri ntl n(" 共有"+allWord.size()+" 个英文单词");SyStem.out.pri ntl n(" 有"+noSameWord.size()+"个互不相同英文单词");SyStem.out.pri ntln (" 按出现的频率排列:");int coun t[]=new in t[ no SameWord.size()];for(i nt i=0;i< no SameWord.size();i++){Stri ng s1= no SameWord.eleme ntAt(i);for(i nt j=O;j<allWord.size();j++){Stri ng s2=allWord.eleme ntAt(j);if(s1.equals(s2))coun t[i]++;}}for(i nt m=0;m <no SameWord.size();m++){for(i ntn=m+1; n<no SameWord.size( );n++){if(co Un t[ n]>co Un t[m]){ Stri ngtemp=no SameWordeIeme ntAt(m);no SameWord.setEleme ntAt( no SameWord.eleme ntAt( n), m) ;no SameWord.setEleme ntAt(temp,n) ;int t=co Un t[m];coun t[m]=co unt[n];coun t[ n]=t;}}}for(i nt m=0;m <no SameWord.size();m++){doublefreque ncy=(1.0*co Un t[m])∕allWord.size();SyStem.out.pri ntf("%s%-7.3f",no SameWord.eleme ntAt(m),freque ncy);}}}运行结果如图2所示共有6个英文单词有6个互不相同英文单词按岀现的解排列:what:0.167 areιθΛ67 you:0.167 doing:0,167 is:0*167 Java:0,167图2实验3密码流// PaSSWOrdJaVaimport java.io.*;PUbliC class PaSSWOrd {PUbliC StatiC void main( Stri ng[] args) { boolea n SUCCeSS=false; int coun t=0; Con sole cons; char[] PaSSWd;con S=SyStem.c on sole(); while(true){SyStem.out.pri nt(" 输入密码:"); PaSSWd=C on s.readPassword(); coun t++;String PaSSWOrd= new Strin g(passwd); if(password.equals("tiger123")){SUCCeSS=true; SyStem.out.pri ntl n("密码正确!");break; }else{SyStem.out.pri ntl n("密码"+password+"不正确!");}if(cou nt==3){SyStem.out.pri ntl n("码都不正确!");SyStem.exit(0); } }if(success){File file=new File("score1.txt try{您第"+count+"次输入的您第"+count+"次输入的您"+count+"次输入的密FileReader inθne=new FileReader(file); BUfferedReader in Tow=newBUfferedReader(i nθn e);Stri ng s=n ull;WhiIe((s=i nTow.readLi ne())!=null){SyStem.out.pri ntl n( s); }inθn e.close(); in Tow.close(); }catch(IOExceptio n ioe){} } } }// score.txt姓名: 张三, 抓举成绩 106kg, 挺举189kg姓名: 李四, 抓举成绩 108kg , 挺举186kg 姓周五, 抓举成绩 112kg , 挺举190kg运行结果如图3所示 4. 实验后的练习:实验1有如下格式的成绩单(文本格式) score.txt 。
JAVA实验报告(异常和输入输出流部分,含答案)
}
}
publicclassNoOprandExceptionextendsException {
publicNoOprandException(String s ){
super(s);
}
}
importjava.util.Scanner;
publicclassTest {
publicstaticvoidmain(String[] args)throwsException{
输出结果:3因j为除式,除数不能为0,属于运行异常中的ng.ArithmeticException: / by zero,不属于myname.length()>2和NullPointerException的情况,因此输出3
2.下面是一个名称为NegativeAmountException的自定义异常类,表示一个不正常的银行账目事件类。填充下面的语句,完成该类的编写。
2)在main方法中,去掉刚才添加的语句,添加下面几行语句,写出并分析结果
swap1(10,12);
System.out.println("执行swap1(10,12)后");
System.out.println("c1引用的牌是:"+c1+"\tc2引用的牌是:"+c2);
System.out.println("第11张牌是:"+cards[10]+"\t第13张牌是:"+cards[12]);
System.out.println("请输入两个数");
Scanner sc=newScanner(System.in);
实验八流类库与输入输出
实验⼋流类库与输⼊输出实验报告课程:⾯向对象技术学号:1010431079 姓名:郝祥海班级:2010级计算机软件(嵌⼊式系统)1班教师:周晓计算机科学与技术系实验⼋流类库与输⼊输出⼀、实验⽬的及要求1.熟悉流类库中常⽤的类及其成员函数的⽤法;2.掌握标准输⼊/输出及格式控制;3.掌握对⽂件的应⽤⽅法。
⼆、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.声明⼀个学⽣类数组,输⼊数据,显⽰出来,使⽤I/O流把此数组的内容写⼊磁盘⽂件,再显⽰出⽂件内容。
学⽣类具有的属性如下:姓名name、学号number、班号classno、性别sex、出⽣⽇期birthday,其中“出⽣⽇期”声明为⼀个“⽇期”类内嵌⼦对象。
四、实验结果(附截图)五、总结通过本次实验,我了解到流是⼀种抽象,它负责在数据的⽣产者和消费者之间建⽴联系,并管理数据的流动。
我对⽂件的输⼊输出流有了更深的了解。
六、附录(源程序清单)#include#include#includeusing namespace std;class Student{public:Student(string n,int nu,int cl,char s);string GetName(){return name;}int GetNumber(){return number;}int GetClassno(){return classno;}char GetSex(){return sex;}private:string name;int number;int classno;char sex;};Student::Student(string n,int nu,int cl,char s):name(n),number(nu),classno(cl),sex(s){}int main(){Student a[3] = {Student("Frank",101,1,'M'), Student("Lucy",201,2,'W'), Student("Mike",301,3,'M')}; int i;for(i=0;i<3;i++){ cout << "姓名\t" << a[i].GetName()<< "\t学号\t" << a[i].GetNumber()<< "\t班号\t" << a[i].GetClassno()<<"\t性别\t"<<< endl;}ofstream f;f.open("C:\\student.txt", ios::out);for(i=0;i<3;i++){f << "姓名\t" << a[i].GetName()<< "\t学号\t" << a[i].GetNumber()<< "\t班号\t" << a[i].GetClassno()<<"\t性别\t"<<< endl;}cout<cout<<"student.txt⽂件中的内容如下"<f.close();ifstream f1("C:\\student.txt", ios::in);char ch;while(f1.get(ch))cout<return 0;}。
OOP_8输入输出流
数据的传输不用关心数据的结构,与设备无关。
2
8.1 概述
1.输入输出库中的流类层次
最清晰的设计方案是首先定义一个用来描述流的基类。 然后从它派生出用于描述输入流的basic_istream和描述输出 流的basic_ostream,但实际上定义了两个公共基类ios_base 和basic_ios 。
返回流对象的引用
操作符>>可处理的类型:
以引用方式将 数据读入整型
26
8.3 高层输入输出类
2. basic_ostream basic_ostream是模板类,从basic_ios派生而来,为用户 提供高层输出服务。
虚基类
27
8.3 高层输入输出类
成员函数 功能
将一个字符写到输出流中
将字符写到输出流中 定位到输出流的指定位置 返回输出流的当前位置 刷新缓冲区
char str[10]; cin.get( str, 10,'!');
读入信息保存 到字符数组b
getline读入结束有3种情况: 遇到文件结束标志: 遇到行结束标志: 已经读取了s-1个字符:
25
8.3 高层输入输出类
为了对内建数据类型进行格式化输入,basic_istream重载 了右移操作符>> 成员函数
清除所有的输入 状态标志包括 EOF标志
18
21
8.2 ios_base 和 basic_ios
basic_ios重载了操作符!,并提供了basic_ios到void*
类型的转换。
如 果 设 臵 了 failbit 或 badbit 则 返 回 0 ( false) 否则返回非0(ture) 如 果 设 臵 了 failbit 或 badbit 则 返 回 ture, 否 则 返回false
输入输出流实验报告
输入输出流实验报告1.编写一个应用程序,读取一个文本文件的内容。
源程序:Work9_1.javaimport java.io.*;public class Work9_1{public static void main(String args[ ]){File readFile=new File("Student.txt"),writeFile=new File("Hello.txt");try{ FileReader inOne=new FileReader("Student.txt");BufferedReader inTwo= new BufferedReader(inOne);FileWriter tofile=new FileWriter("hello.txt");BufferedWriter out= new BufferedWriter(tofile);String s=null;int i=0;while((s=inTwo.readLine())!=null){i++;out.write(s);out.newLine();}out.flush();out.close();tofile.close();inOne=new FileReader("hello.txt");inTwo= new BufferedReader(inOne);while((s=inTwo.readLine())!=null){System.out.println(s);}inOne.close();inTwo.close();}catch(IOException e){System.out.println(e);}}}所读取的文本文件截图:运行界面:2.编写一个应用程序,将用户从键盘输入的10行文字存入文件。
输入输出流.ppt
输入流——表示数据从某个载体或设备传送 到内存
输出流——表示数据从内存传送到某个载体 或设备
键盘 文件
输入流
输出流
内 存
显示器 文件
光笔....
打印机...
C++的输入输出流
在进行I/O操作时——
首先进行“打开”操作,使流和文件发生联系 建立联系后的文件才允许数据流入或流出 I/O结束后,使用“关闭”操作使文件与流断开联系。
dec:34
cout<<“hex:”<<hex<<a<<endl;
hex:22
cout<<“oct:”<<oct<<a<<endl;
oct:42
cout<<setfill(‘*’)<<setw(10)<<dec<<a<<endl;********34
}
用流对象的成员控制格式输出
说明: cout.width(n) cout.fill(c)
对象 含义 对应设备 对应的类
cin 标准输入流 键盘 istream_withassign
cout 标准输出流 显示器 ostream_withassign
cerr 或 clog
标准错误流
13.2 标准输出流
标准输出流——流向标准输出设备(显示器)的数据 cout流对象——在控制台(显示器)输出
用流插入运算符“<<”向cout输出数据. 如:
cout << “a=”<< a << endl; cout << 数据1 <<数据2 << 数据3;
输入输出流实验
深圳大学实验报告课程名称:Java实验序号:上机实践9实验名称:统计英文单词&读取Zip文件班级:计算机3 姓名:卢志敏同组人:实验日期:2008 年12 月29 日教师签字:一、实验目的⏹掌握RandomAccessFile类的使用。
⏹掌握ZipInputStream流的使用。
二、实验环境JDK1.5 WinXp SP 3三、实验要求实验1⏹使用RandomAccessFile流统计一篇英文中的单词,要求如下:(1)一共出现了多少个英文单词。
(2)有多少个互不相同的单词。
(3)给出每个单词出现的频率,并将这些单词按频率大小顺序显示在一个Text--Area 中。
实验2⏹读取book.zip,并将book.zip中含有的文件重新存放到当前目录中的book文件夹中,即将book.zip的内容解压到book文件夹中。
四、实验步骤和内容实验1源代码:WordStatistic.javaimport java.io.*;import java.util.Vector;public class WordStatistic{ Vector allWords,noSameWord;WordStatistic(){ allWords=new Vector();noSameWord=new Vector();}public void wordStatistic(File file){try { RandomAccessFile inOne=new RandomAccessFile(file,"rw");//创建指向文件file的inOne的对象RandomAccessFile inTwo=new RandomAccessFile(file,"rw");//创建指向文件file的inTwo的对象long wordStarPostion=0,wordEndPostion=0;long length=inOne.length();int flag=1;int c=-1;for (int k=0;k<=length;k++){ c=inOne.read(); //inOne调用read()方法boolean boo=(c<='Z'&&c>='A')||(c<='z'&&c>='a');if (boo){ if (flag==1){ wordStarPostion=inOne.getFilePointer()-1;flag=0;}}else{ if (flag==0){ if (c==-1)wordEndPostion=inOne.getFilePointer();elsewordEndPostion=inOne.getFilePointer()-1;inTwo.seek(wordStarPostion); //inTwo调用seek方法将读写位置移动到wordStarPostionByte cc[]=newbyte[(int)wordEndPostion-(int)wordStarPostion];inTwo.readFully(cc); //inTwo调用readFully方法String word=new String(cc);allWords.add(word);if(!noSameWord.contains(word))noSameWord.add(word);}flag=1;}}inOne.close();inTwo.close();}catch(Exception e){}}public Vector getAllWords(){ return allWords;}public Vector getNoSameWord(){ return noSameWord;}}StatisticFrame.javaimport java.awt.*;import java.awt.event.*;import java.util.Vector;import java.io.File;public class StatisticFrame extends Frame implements ActionListener{ WordStatistic statistic;TextArea showMessage;Button openFile;FileDialog openFileDialog;Vector allWord,noSameWord;public StatisticFrame(){ statistic=new WordStatistic();showMessage=new TextArea();openFile=new Button("Open File");openFile.addActionListener(this);add(openFile,BorderLayout.NORTH);add(showMessage,BorderLayout.CENTER);openFileDialog=new FileDialog(this,"打开文件对话框",FileDialog.LOAD);allWord=new V ector();noSameWord=new Vector();setSize(350,300);setVisible(true);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);}});validate();}public void actionPerformed(ActionEvent e){ noSameWord.clear();allWord.clear();showMessage.setText(null);openFileDialog.setVisible(true);String fileName=openFileDialog.getFile();if(fileName!=null){ statistic.wordStatistic(new File(fileName));allWord=statistic.getAllWords();noSameWord=statistic.getNoSameWord();showMessage.append("\n"+fileName+"中有"+allWord.size()+"个英文单词");showMessage.append("\n其中有"+noSameWord.size()+"个互不相同的英文单词");showMessage.append("\n按使用频率排列: \n");int count[]=new int[noSameWord.size()];for(int i=0;i<noSameWord.size();i++){ String s1=(String)noSameWord.elementAt(i);for(int j=0;j<allWord.size();j++){ String s2=(String)allWord.elementAt(j);if(s1.equals(s2))count[i]++;}}for(int m=0;m<noSameWord.size();m++){ for(int n=m+1;n<noSameWord.size();n++){ if(count[n]>count[m]){ String temp=(String)noSameWord.elementAt(m);noSameWord.setElementAt((String)noSameWord.elementAt(n),m);noSameWord.setElementAt(temp,n);int t=count[m];count[m]=count[n];count[n]=t;}}}for(int m=0;m<noSameWord.size();m++){showMessage.append("\n"+(String)noSameWord.elementAt(m)+":"+count[m]+"/"+allWord.size()+" ="+(1.0*count[m])/allWord.size());}}}}StatisticMainClass.javapublic class StatisticMainClass{ public static void main(String args[]){ new StatisticFrame();}}实验2源代码ReadZipFile.javaimport java.io.*;import java.util.zip.*;public class ReadZipFile{public static void main(String [] args){ File f = new File("book.zip");File dir = new File("Book");byte b[] = new byte[100];dir.mkdir();try{ ZipInputStream in = new ZipInputStream(new FileInputStream(f));ZipEntry zipEntry =null;while((zipEntry=in.getNextEntry())!=null){File file = new File(dir,zipEntry.getName());FileOutputStream out = new FileOutputStream(file);int n=-1;System.out.println(file.getAbsolutePath()+"的内容");while((n=in.read(b,0,100))!=-1){ String str= new String(b,0,n);System.out.println(str);out.write(b,0,n);}out.close();}in.close();}catch(IOException ee){System.out.println(ee);}}}运行效果截屏:五、实验后的练习在StatisticFrame的showMessage中增加单词按字典序排序输出的信息。
实验八-输入输出流
实验八输入输出流1.实验目的1、掌握字符输入、输出流的用法2、掌握使用Scanner类解析文件3、掌握Console流的使用2.实验内容1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。
1) 实验1举重成绩单2) 实验2统计英文单词3) 实验3密码流4) 实验4学读汉字5)实验5 读取Zip文件2、设计编写程序完成以下任务。
1)修改实验2,要求按字典顺序输出全部不相同的单词。
2)参考实验3编写一个程序,程序运行时,要求用户输入的密码是:hello。
如果用户输入了正确的密码。
程序将输出“你好,欢迎你!”。
程序允许用户2次输入的密码不正确,一旦超过2次,程序将立刻退出。
3)在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下:路径是xxx的文件夹内的文件有:文件名:abc.txt路径名:c:\temp\abc.txt--------------------------------------------文件名:def.txt路径名:c:\temp\def.txt知识点:File管理4)使用java的输入输出流将一个文本文件的内容读出并在控制台将文件中的内容打印出来。
(参考书上P184页)5)从控制台输入一串字符串,将该串字符串写入到磁盘某位置上的out.txt文件中去。
(参考教材P183页)6)使用java的输入输出流将一个文本文件的内容按行读取,每读一行就顺序添加行号,并写入到另一个文件中.7)定义一个Person类,包含姓名、年龄、身份证号码属性。
有一个带参数的构造方法用于对所有属性赋值,还有一个study的方法,里面只打印一条“我喜欢学习”的话。
写一个Test类,里面实例化若干个Person对象,并将这些对象写入到obj.txt文件中去。
8)创建c:/test.txt文件并在其中输入"hello world"创建一个输入流读取该文件中的文本并且把小写的l变成大写L再利用输出流写入到d:\test.txt中实现步骤:(1)在本地硬盘C盘下创建一个文件test.txt(2)创建一个包含main()方法的类,并在main中编写代码(3)运行代码并且测试结果实现过滤器的功能效果显示:知识点:IO字符流、String常用方法3.实验步骤略4.评分标准1.A——内容功能完善,编程风格好,人机接口界面好;2.B——内容功能完善,编程风格良好,人机接口界面良好;3.C——完成必做内容;4.D——能完成必做内容;5.E——未按时完成必做内容,或者抄袭(雷同者全部为E).参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。
B08输入输出及数据库操作ppt课件全
8.1.1 流的含义
流
– 是一个很形象的概念,当程序需要读取数据的时候, 就会开启一个通向数据源的流,这个数据源可以是文 件,内存,或是网络连接。类似的,当程序需要写入 数据的时候,就会开启一个通向目的地的流。这时候 你就可以想象数据好像在这其中“流”动一样,如下 图7-1:
图7-1 流
8.1.1 流的含义
–
System.out.println("Can write: "+f.canWrite());
–
System.out.println("Is file: "+f.isFile());
–
System.out.println("Is director: "+f.isDirectory());
–
System.out.println("Is absolute path:
PipedOutputStream 管道输出流
ObjectOutputStream 对象输出流
BufferOutputStream 带缓冲区输出流
PrintStream 回退输出流
DataOutputStream 数据输出流
图7-3 OutputStream输出流层次结构
Reader
BufferReader
– public File(String pathName,String name): 使用参数pathName(绝对路径或相对路径)来定位 参数name所指定的文件或目录。
例如: File myFile; MyFile= new File(“D:\WU”,“abc.txt”);
8.1.4 File类
OutputStream Writer
实验八、输入输出实验
实验八、输入/输出实验一、实验目的了解模型机输出寄存器的结构及控制方法,掌握手动输出控制和程序输出控制的基本方法,以便学会与外设之间的数据交换方法。
二、实验要求使用CP226实验平台,完成数据的输入与输出控制,并能得到准确的实验结果。
三、实验内容分别采用手动控制方式(脱机方式)和微程序控制方式(联机方式)以BCD码的方法输入和输出两位学生学号的后两位(假设学号分别为10112025、10112008,则后两位的BCD 码分别是25H和08H)。
其具体内容如下:1.采用手动控制方式,将某位学生学号以BCD码的方式通过IN寄存器输入到累加器A,然后再输出到输出寄存器OUT中(IN寄存器的输入端内部已经连接到了K23..K16,所以不必再连线,此时J1要与J2相连);2.采用微程序控制方式,将某位学生学号以BCD码的方式输入到累加器A,然后在输出到输出寄存器OUT中。
相关的代码如下:IN ;通过输入寄存器IN输入数据到累加器A中,数据在K23..L16上OUT ;将累加器A中数据输出到输出寄存器OUT,结果可以从LED灯上看出IN ;通过输入寄存器IN输入数据到累加器A中,数据在K23..L16上OUT ;将累加器A中数据输出到输出寄存器OUT,结果可以从LED灯上看出END请在微程序控制的层面上跟踪和分析上述指令的执行过程,并完成程序跟踪表8-1。
表8-1:程序跟踪表(只跟踪前两条指令)四、实验电路下面是输入寄存器IN、输出寄存器OUT和输出选择器的电路图图8-1 输入寄存器IN的电路图图8-2 输出寄存器OUT的电路图图8-3 数据输出到总线的选择电路图五、实验接线与控制信号设置1.实验内容1(手动方式)手动方式的实验连线请同学们自己考虑完成,这里要注意:写入累加器时AEN=0、OUTEN=1,而写入OUT寄存器时,AEN=1、OUTEN=0。
2.实验内容2(联机方式)联机实验要注意下述连接:●拔掉实验仪上所有的手工连接的接线;●用8 芯电缆连接J1 和J2;●将控制方式开关KC拨到“微程序”方向。
实验八 实验指导(8255简单输入输出)
实验指导
实验八 8255简单输入输出实验
一、实验目的
1、熟练掌握8255A 并行接口芯片原理
2、熟练掌握8255A 初始化方法
3、熟练掌握IN 、OUT 指令 二、实验内容
1、利用8255A 的A 口控制发光二极管D0~D7按1、3、5、
7和2、4、6、8交替点亮规律变化,交替点亮10次后结束。
2、8255A 的B 口为输入,接8个开关K0~K7,C 口为输出,
接8个发光二极管LED D0~D7,利用开关控制LED 的点亮,要求开关Ki 向上,对应的Di 亮,开关Ki 向下,对应的Di 灭,当开关状态为10101010B 时,结束程序运行。
三、实验步骤:
1、按题目要求连接实验线路。
2、编写实验程序,经编译、链接无误后下载到实验箱。
3、运行程序,(改变拨动开关,)同时观察LED 显示,验证程 序功能。
4、完成实验报告。
实验报告新增要求:
⑴写出8255控制字。
⑵画出系统接线图。
⑶运行结果描述。
参考软件延时子程序(延时参数0F00H 可根据需要调整)
• DELAY PROC • PUSH CX • MOV CX, 0F00H • L1: PUSH AX • POP AX • LOOP L1 • POP CX • RET • DELAY ENDP
片选译码:
四、实验接线
1、参考框图
2、参考框图。
输入输出流
PPT文档演模板
输入输出流
2.3 查询文件属性
String s="e:"+File.separator+"Thread1.java"; File file=new File(s); String exists = file.exists() ? "Yes" : "No"; String canRead = file.canRead() ? "Yes" : "No"; String canWrite = file.canWrite() ? "Yes" : "No"; String isFile = file.isFile() ? "Yes" : "No"; String isHid = file.isHidden() ? "Yes" : "No"; String isDir = file.isDirectory() ? "Yes" : "No"; String isAbs = file.isAbsolute() ? "Yes" : "No";
PPT文档演模板
输入输出流
P261, 例4 Example20_4 TextArea text; BufferedReader in; Button button; FileReader file; EWindow() {
super("流的读取"); text=new TextArea(10,10); text.setBackground(Color.cyan); try { File f=new File("E:\\lanhong\\", "a.txt");
输入输出流
输入输出流西安邮电大学(计算机学院)课内实验报告实验名称:输入输出流专业名称:网络工程班级:学生姓名:学号(8位):指导教师:实验日期:2014年5月29日一. 实验目的及实验环境1. 理解I/O流的概念,掌握其分类2. 掌握文本文件读写、二进制文件读写二. 实验内容1.编写程序,接受用户从键盘输入的一个文件名,然后判断判断该文件是否存在于当前目录。
若存在,则继续输出:文件是否可读可写、文件的大小、文件是一个普通文件还是目录。
2. 编程完成文件复制功能,用命令行方式提供源文件名和目标文件名。
3. 编写一个程序,从键盘输入5个学生的信息(包含学号、姓名、3科成绩),统计各生的总分,然后将学生信息和统计结果分别存入二进制数据文件STUDENT.DA T和文本文件STUDENT.txt中。
并从文件中读取数据,按学生的总分递减排序后,显示前3个学生的学号、姓名和总分。
三.方案设计1.判断文件是否存在,若存在,判断文件是否可读可写,文件是一个普通文件还是目录;若是普通文件,输出文件大小。
2. try{ //读文件BufferedInputStream f1_in=new BufferedInputStream(new FileInputStream(f1)) ;byte[] f1byte=new byte[100];String f1str;int len;while((len=f1_in.read(f1byte))>0){f1str=new String(f1byte,0,len);fstr=fstr+f1str;}f1_in.close();//写文件BufferedOutputStream f2_out=new BufferedOutputStream(new FileOutputStream(f2));f2_out.write(fstr.getBytes(),0,fstr.getBytes().length);f2_out.flush();f2_out.close();}catch(FileNotFoundException fnfe){fnfe.printStackTrace();}catch(IOException ioe){ioe.printStackTrace();}catch(Exception e){e.printStackTrace();}3. for(int i=1; i <= NUM; i++){student=new Student();System.out.println("请输入第" + i + "个学生学号:");student.setNum(scanner.nextInt());System.out.println("请输入第" + i + "个学生姓名:");student.setName(scanner.next());System.out.println("请输入第" + i + "个学生语文成绩:");student.setChineseScore1(scanner.nextFloat());System.out.println("请输入第" + i + "个学生数学成绩:");student.setMathScore2(scanner.nextFloat());System.out.println("请输入第" + i + "个学生英语成绩:");student.setEnglishScore3(scanner.nextFloat());student.setSum(student.getChineseScore1() + student.getMathScore2() + student.getEnglishScore3());dos.writeInt(student.getNum());dos.writeUTF(student.getName());dos.writeFloat(student.getChineseScore1());dos.writeFloat(student.getMathScore2());dos.writeFloat(student.getEnglishScore3());dos.writeFloat(student.getSum());}}catch(Exception e){e.printStackTrace();}}四.测试数据及运行结果1.测试结果如下:2.测试结果如下:3.测试结果如下:五.总结本次实验我们学习了常用I/O流及文件处理方法,File类是对本地文件系统中某个文件或者目录的路径名的一个平台无关的表示,实验可以从控制台输入也可以直接输入,主要是路径要写完整,还有直接在程序中输入时路径要写成如:“D:\\A\\B.txt”形式,不然会报错。
Java实验 输入输出
实验八输入输出【开发语言及实现平台或实验环境】Windows2000或XP,JDK1.6【实验目的】了解Java输入输出流类的基本使用方法。
【实验要求】掌握不同类型的输入输出流类,标准数据流、文件流、数据输入输出流、对象流等。
【实验内容】使用输入输出流类1.使用标准数据流的应用程序标准数据流指在字符方式下(如DOS提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
(1)程序功能:将键盘上输入的字符在屏幕上显示出来。
(2)编写LX5_3.java程序文件,源代码如下。
class LX5_3{public static void main(String[]args)throws java.io.IOException{byte buffer[]=new byte[10];System.out.println("从键盘输入不超过10个字符,按回车键结束输入:");int count=System.in.read(buffer);//读取输入的字符并存放在缓冲区buffer中System.out.println("保存在缓冲区buffer中元素的个数为:"+count);System.out.println("buffer中各元素的值为:");for(int i=0;i<count;i++){System.out.print(""+buffer[i]);//在屏幕上显示buffer元素的值}System.out.println();System.out.println("输出buffer字符元素:");System.out.write(buffer,0,buffer.length);}}(3)编译LX5_3.java文件。
实验8输入输出流
实验八输入输出流【目的】①掌握字符输入、输出流的用法;②掌握RandomAccessFil类的使用;【内容】1.学读汉字。
✧实验要求:编写一个Java应用程序,要求如下:(1)可以将一个由汉字字符组成的文本文件读入到程序中;(2)单击名为“下一个汉字”的按钮,可以在一个标签中显示程序读入的一个汉字;(3)单击名为“发音”的按钮,可以听到标签上显示的汉字的读音。
(4)用户可以使用文本编辑器编辑程序中用到的3个由汉字字符组成的文本文件:training1.txt、training2.txt和training.txt,这些文本文件中的汉字需要用空格、逗号或回车分隔。
()需要自己制作相应的声音文件,比如:training1.txt文件包含汉字“你”,那么在当前应用程序的运行目录中需要有“你.wav”格式的声音文件。
()用户选择“帮助”菜单,可以查看软件的帮助信息。
✧程序运行效果示例:程序运行效果如下图所示:✧程序模板:ChineseCharacters.javaimport java.io.*;import java.util.StringTokenizer;public class ChineseCharacters{ public StringBuffer getChinesecharacters(File file){ StringBuffer hanzi=new StringBuffer();try{ FileReader inOne=【代码1】 //创建指向文件f的inOne 的对象BufferedReader inTwo=【代码2】//创建指向文件inOne的inTwo的对象String s=null;int i=0;while((s=【代码3】)!=null) //inTwo读取一行{ StringTokenizer tokenizer=new StringTokenizer(s," ,'\n' ");while(tokenizer.hasMoreTokens()){ hanzi.append(tokenizer.nextToken());}}}catch(Exception e) {}return hanzi;}}StudyFrame.javaimport java.awt.*;import java.awt.event.*;import java.io.*;import javax.sound.sampled.*;public class StudyFrame extends Frame implements ItemListener,ActionListener,Runnable{ ChineseCharacters chinese;Choice choice;Button getCharacters,voiceCharacters;Label showCharacters;StringBuffer trainedChinese=null;Clip clip=null;Thread voiceThread;int k=0;Panel pCenter;CardLayout mycard;TextArea textHelp;MenuBar menubar;Menu menu;MenuItem help;public StudyFrame(){ chinese=new ChineseCharacters();choice=new Choice();choice.add("training1.txt");choice.add("training2.txt");choice.add("training3.txt");showCharacters=new Label("",Label.CENTER);showCharacters.setFont(new Font("宋体",Font.BOLD,72));showCharacters.setBackground(Color.green);getCharacters=new Button("下一个汉字");voiceCharacters=new Button("发音");voiceThread=new Thread(this);choice.addItemListener(this);voiceCharacters.addActionListener(this);getCharacters.addActionListener(this);Panel pNorth=new Panel();pNorth.add(new Label("选择一个汉字字符组成的文件"));pNorth.add(choice);add(pNorth,BorderLayout.NORTH);Panel pSouth=new Panel();pSouth.add(getCharacters);pSouth.add(voiceCharacters);add(pSouth,BorderLayout.SOUTH);pCenter=new Panel();mycard=new CardLayout();pCenter.setLayout(mycard);textHelp=new TextArea();pCenter.add("hanzi",showCharacters);pCenter.add("help",textHelp);add(pCenter,BorderLayout.CENTER);menubar=new MenuBar();menu=new Menu("帮助");help=new MenuItem("关于学汉字");help.addActionListener(this);menu.add(help);menubar.add(menu);setMenuBar(menubar);setSize(350,220);setVisible(true);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);}});validate();}public void itemStateChanged(ItemEvent e){ String fileName=choice.getSelectedItem();File file=new File(fileName);trainedChinese=chinese.getChinesecharacters(file);k=0;mycard.show(pCenter,"hanzi") ;}public void actionPerformed(ActionEvent e){ if(e.getSource()==getCharacters){ if(trainedChinese!=null){ char c=trainedChinese.charAt(k);k++;if(k>=trainedChinese.length())k=0;showCharacters.setText(""+c);}else{ showCharacters.setText("请选择一个汉字字符文件"); }}if(e.getSource()==voiceCharacters){ if(!(voiceThread.isAlive())){ voiceThread=new Thread(this);}try{ voiceThread.start();}catch(Exception exp){}}if(e.getSource()==help){ mycard.show(pCenter,"help") ;try{ File helpFile=new File("help.txt");FileReader inOne=【代码4】 //创建指向文件helpFile的inOne 的对象BufferedReader inTwo=【代码5】 //创建指向文件inOne的inTwo 的对象String s=null;while((s=inTwo.readLine())!=null){ textHelp.append(s+"\n");}inOne.close();inTwo.close();}catch(IOException exp){}}}public void run(){ voiceCharacters.setEnabled(false);try{ if(clip!=null){ clip.close()}clip=AudioSystem.getClip();File voiceFile=new File(showCharacters.getText().trim()+".wav");clip.open(AudioSystem.getAudioInputStream(voiceFile));}catch(Exception exp){}clip.start();voiceCharacters.setEnabled(true);}}StudyMainClass.javapublic class StudyMainClass{ public static void main(String args[]){ new StudyFrame();}}✧实验后的练习:1. 在StudyFrame类中增加一个按钮previousButton,单击该按钮可以读取前一个汉字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
catch(Exception e) {}
return hanzi;
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
pSouth.add(voiceCharacters); add(pSouth,BorderLayout.SOUTH); pCenter=new Panel(); mycard=new CardLayout(); pCenter.setLayout(mycard); textHelp=new TextArea(); pCenter.add("hanzi",showCharacters); pCenter.add("help",textHelp); add(pCenter,BorderLayout.CENTER); menubar=new MenuBar(); menu=new Menu("帮助"); help=new MenuItem("关于学汉字"); help.addActionListener(this); menu.add(help); menubar.add(menu); setMenuBar(menubar); setSize(350,220); setVisible(true); addWindowListener(new WindowAdapter()
int i=0; while((s=【代码 3】)!=null)
}
{ StringTokenizer tokenizer=new StringTokenizer(s," ,'\n' ");
while(tokenizer.hasMoreTokens())
{ hanzi.append(tokenizer.nextToken());
CardLayout mycard;
TextArea textHelp;
MenuBar menubar;
Menu menu;
MenuItem help;
public StudyFrame()
{ chinese=new ChineseCharacters();
choice=new Choice();
choice.add("training1.txt");
showCharacters.setBackground(Color.green); getCharacters=new Button("下一个汉字");
voiceCharacters=new Button("发音");
voiceThread=new Thread(this);
choice.addItemListener(this);
choice.add("training2.txt");
choice.add("training3.txt");
showCharacters=new Label("",Label.CENTER); showCharacters.setFont(new Font("宋体",Font.BOLD,72));
实验八 输入输出流
【目的】 ①掌握字符输入、输出流的用法; ②掌握RandomAccessFil类的使用;
【内容】
1.学读汉字。 实验要求:
编写一个Java应用程序,要求如下: (1)可以将一个由汉字字符组成的文本文件读入到程序中; (2)单击名为“下一个汉字”的按钮,可以在一个标签中显示程序读入的一 个汉字; (3)单击名为“发音”的按钮,可以听到标签上显示的汉字的读音。 (4)用户可以使用文本编辑器编辑程序中用到的3个由汉字字符组成的文本 文件:training1.txt、training2.txt和training.txt,这些文本文件中的汉字 需要用空格、逗号或回车分隔。 ()需要自己制作相应的声音文件,比如:training1.txt文件包含汉字“你” ,那么在当前应用程序的运行目录中需要有“你.wav”格式的声音文件。 ()用户选择“帮助”菜单,可以查看软件的帮助信息。
Choice choice;
Button getCharacters,voiceCharacters;
Label showCharacters;
StringBuffer trainedChinese=null;
Clip clip=null;
Thread voiceThread;
int k=0;
Panel pCenter;
add(pNorth,BorderLayout.NORTH);
Panel pSouth=new Panel();
pSouth.add(getCharacters);
implements
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资配,料置不试技仅卷术可要是以求指解,机决对组吊电在顶气进层设行配备继置进电不行保规空护范载高与中带资负料荷试下卷高总问中体题资配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可关都能于可地管以缩路正小高常故中工障资作高料;中试对资卷于料连继试接电卷管保破口护坏处进范理行围高整,中核或资对者料定对试值某卷,些弯审异扁核常度与高固校中定对资盒图料位纸试置,.卷编保工写护况复层进杂防行设腐自备跨动与接处装地理置线,高弯尤中曲其资半要料径避试标免卷高错调等误试,高方要中案求资,技料编术试5写交卷、重底保电要。护气设管装设备线置备4高敷动调、中设作试电资技,高气料术并中课3试中且资件、卷包拒料中管试含绝试调路验线动卷试敷方槽作技设案、,术技以管来术及架避系等免统多不启项必动方要方式高案,中;为资对解料整决试套高卷启中突动语然过文停程电机中气。高课因中件此资中,料管电试壁力卷薄高电、中气接资设口料备不试进严卷行等保调问护试题装工,置作合调并理试且利技进用术行管,过线要关敷求运设电行技力高术保中。护资线装料缆置试敷做卷设到技原准术则确指:灵导在活。分。对线对于盒于调处差试,动过当保程不护中同装高电置中压高资回中料路资试交料卷叉试技时卷术,调问应试题采技,用术作金是为属指调隔发试板电人进机员行一,隔变需开压要处器在理组事;在前同发掌一生握线内图槽部纸内故资,障料强时、电,设回需备路要制须进造同行厂时外家切部出断电具习源高题高中电中资源资料,料试线试卷缆卷试敷切验设除报完从告毕而与,采相要用关进高技行中术检资资查料料和试,检卷并测主且处要了理保解。护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
//inTwo 读取一行
} }
StudyFrame.java
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.sound.sampled.*;
public
class
StudyFrame
extends
Frame
程序运行效果示例:
程序运行效果如下图所示:
程序模板:
ChineseCharacters.java
iቤተ መጻሕፍቲ ባይዱport java.io.*;
import java.util.StringTokenizer;
public class ChineseCharacters
{ public StringBuffer getChinesecharacters(File file)
voiceCharacters.addActionListener(this);