实验7 输入输出流
实验五 输入输出流
实验五输入输出流一、实验目的1.掌握文件的使用2.掌握字节I/O流、字符类I/O流、缓冲流、数据流等常用流的使用。
3.熟悉对象流、RandomAccessFile类的使用。
二、实验内容1.利用各种常用IO流的处理方法,编写Java应用程序。
三、实验步骤与要求第1题文件加密编写一个Java应用程序,将已存在的扩展名为.txt的文本文件加密后存入另一个文本文件中。
package four;import java.io.*;public class file {public static void main(String args[]){File readFile =new File("Student.txt"),writeFile =new File("Hello.txt");String s="欢迎来到北京 welcome";char b[]=s.toCharArray();try{FileWriter out=new FileWriter(readFile,true);out.write(b);out.close();FileWriter tofile=new FileWriter ("hello.txt");for(int i=0;i<b.length;i++){b[i]=(char)(b[i]^'w');}String secret=new String(b);System.out.println("原文:"+s);System.out.println("密文:"+secret);tofile.write(secret);tofile.close();FileReader inOne=new FileReader("Hello.txt");int t=0;System.out.println("存入后:");while((t=inOne.read(b,0,2))!=-1){ String str=new String(b,0,2);System.out.println(str);}inOne.close();}catch (IOException e){System.out.println(e);}}}第2题读写基本类型数据编写一个Java应用程序,将若干基本数据写入到一个文件,然后再按顺序读出。
实验七 液压泵的特性实验
实验七 液压泵的特性实验一、实验准备知识预习思考题1.液压泵的功能和种类 2.液压泵的特性3.液压泵的动态特性和静态特性分别指的是什么?实验基础知识液压泵是一种能量转换装置,它把驱动电机的机械能转换成输到系统中去的油液的压力能,供液压系统使用。
液压泵(液压马达)按其在单位时间内所能输出(所需输入)油液体积可否调节而分为定量泵(定量马达)和变量泵(变量马达)两类;按结构形成可以分为齿轮式、叶片式和柱塞式三大类。
液压泵或液压马达的工作压力是指泵(马达)实际工作时的压力。
对泵来说,工作压力是指它的输出压力;对马达来说,则是指它的输入压力。
液压泵(液压马达)的额定压力是指泵(马达)在正常工作条件下按试验标准规定的连续运转的最高压力,超过此值就是过载。
液压泵(液压马达)的排量(用V 表示)是指泵(马达)轴每转一转,由其密封容腔几何尺寸变化所算得的排出(输入)液体体积,亦即在无泄漏的情况下,其轴转一转所能排出(所需输入)的液体体积。
液压泵(液压马达)的理论流量(用q t 表示)是指泵(马达)在单位时间内由其密封容腔几何尺寸变化计算而得的排出(输入)的液体体积。
泵(马达)的转速为n 时,泵(马达)的理论流量为 q t =Vn 。
实际上,液压泵和液压马达在能量转换过程中是有损失的.因此输出功率小于输入功率。
两者之间的差值即为功率损失,功率损失可以分为容积损失和机械损失两部分。
容积损失是因内泄漏、气穴和油液在高压下的压缩(主要是内泄漏)而造成的流量上的损失。
对液压泵来说,输出压力增大时,泵实际输出的流量q 减小。
设泵的流量损失为q t ,则泵的容积损失可用容积效率ην来表征。
ην =tt t t q q q q q q q 111-=-= 泵内机件间的泄漏油液的流态可以看作为层流,可以认为流量损失q 1和泵的输出压力P 成正比,即q 1 = k 1P式中,k 1为流量损失系数。
因此有ην =Vnpk 11- 上式表明:泵的输出压力愈高,系数愈大,或泵的排量愈小,转速愈低,则泵的容积效率也愈低。
Java程序设计实用教程第4版习题解答与实验指导第1-8章
Java程序设计实用教程(第4版)习题解答与实验指导叶核亚编著2013年11月目录“Java程序设计”课程教学要求 (1)第1章Java概述 (3)第2章Java语言基础 (5)第3章类的封装、继承和多态 (22)第4章接口、内部类和Java API基础 (37)第5章异常处理 (42)第6章图形用户界面 (44)第7章多线程 (49)第8章输入/输出流和文件操作 (51)“Java程序设计”课程教学要求1. 课程性质、目的和任务程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培养学生软件设计能力的重要课程。
在计算机学科的本科教学中,起着非常重要的作用。
“Java程序设计”是计算机科学与技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。
本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。
本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。
2. 教学基本要求本课程的基本要求如下。
①了解Java语言特点,理解Java Application应用程序的运行原理和方法。
掌握在JDK 环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。
②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。
③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。
④熟悉Java JDBC数据库应用的设计方法。
实验六 流式输入输出处理
实验六流式输入输出处理一、实验目的1、理解流的概念,流的划分2、掌握文件描述,顺序处理,随机访问处理的方法;3、能够熟练的使用过滤流;掌握字符流处理的方法;4、理解对象串行化的概念和方法。
二、实验内容与要求1、仔细读下面的JA V A语言源程序,自己给出程序的运行结果,理解File类的使用。
package Test03;import java.awt.BorderLayout;import java.awt.Choice;import java.awt.Container;import java.awt.Frame;import java.awt.ItemSelectable;import java.awt.TextField;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.JFrame;public class Ch71 extends JFrame{int n;String dirname="/jdk1.4";File file=new File(dirname);String[] flist=new String[100];Choice choice=new Choice();TextField tf=new TextField();private Container listFile;private InputMethodListener[] filst;public Ch71(){s etLayout(new BorderLayout(10,10));flist=file.list();for (n=0;n<flist.length;n++) {listFile.addInputMethodListener(filst[n]);}add("North",listFile);add("South",tf);setSize(250,200);setVisible(true);((ItemSelectable) listFile).addItemListener(new koListener());addWindowListener(new koWindowListener());}public static void main(String args[]) {new Ch71();}class koListener implements ItemListener {public void itemStateChanged(ItemEvent e) {String ko=(String)e.getItem();for (n=0;n<flist.length;n++)if (ko==flist[n]) {File f=newFile(file+System.getProperty("file.separator")+ko);if (f.isFile()==true)tf.setText(ko+"是个文件!");i f (f.isDirectory()==true)tf.setText(ko+"是个目录!");}}}class koWindowListener extends WindowAdapter {public void windowClosing(WindowEvent e) {dispose();System.exit(0);}}}运行结果如下:2、仔细读下面的JA V A语言源程序,自己给出程序的运行结果package Test03;import java.io.*;public class testRandom2 {public static void main(String args[]){try{RandomAccessFile rf=new RandomAccessFile("rtest.dat", "rw");for(int i = 0; i < 10; i++){rf.writeInt(i);rf.writeDouble(i*1.414);}rf.close();rf = new RandomAccessFile("rtest.dat", "rw");rf.seek(5*(4+8));rf.writeInt(47);rf.writeDouble(47.00021);rf.close();rf = new RandomAccessFile("rtest.dat", "r");for(int i = 0; i < 10; i++){;System.out.println("Value " + rf.readInt() + ": " +rf.readDouble());}rf.close();}catch(IOException e){System.out.println(e.toString());}}}运行结果如下:Value 0: 0.0Value 1: 1.414Value 2: 2.828Value 3: 4.242Value 4: 5.656Value 47: 47.00021Value 6: 8.484Value 7: 9.898Value 8: 11.312Value 9: 12.7259999999999993、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"、”显示帐号”以及存储功能。
实验七输入输出流
实验七输入输出流一、实验目的(1)了解流式输入输出的基本概念;(2)熟悉Java.io包中常用的基本输入输出类;(3)掌握程序与文件之间的基本输入输出操作;二、实验内容1) 把字符串“20102324,张三,男,25,软件工程”,保存到文件”d:\\a.txt”中,并读取打印a.txt文件中的内容。
2) 把我们在聊天界面中发送的消息保存到日志文件里面,在界面上添加一个历史按钮,当点击历史按钮时读取日志文件内容。
三、实验步骤1)把字符串“20102324,张三,男,25,软件工程”,保存到文件”d:\\a.txt”中,并读取打印a.txt文件中的内容。
(1) 定义变量message,值为“20102324,张三,男,25,软件工程”;(2) 创建指向”D:\\a.txt”的文件对象(3) 创建输出流(4) 把message写入流(文件)中(5) 关闭输出流(6) 创建输入流(7) 读取文件内容(8) 打印文件内容(9) 关闭输入流import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileIO {public static void main(String[] args) {String message = "20102324,张三,男,25,软件工程";File myFile=new File("D:\\a.txt");//写文件try {FileOutputStream fout = new FileOutputStream(myFile,true);//不覆盖try {fout.write(message.getBytes());} catch (IOException e) {e.printStackTrace();}finally{try {fout.close();} catch (IOException e) {e.printStackTrace();}}} catch (FileNotFoundException e) {e.printStackTrace();}//读文件try {FileInputStream fint = new FileInputStream(myFile);byte b[] = new byte[(int) myFile.length()];try {fint.read(b);String s = new String(b);System.out.println(s);} catch (IOException e) {e.printStackTrace();}finally{try {fint.close();} catch (IOException e) {e.printStackTrace();}}}catch (FileNotFoundException e) {e.printStackTrace();}}}2)把我们在聊天界面中发送的消息保存到日志文件里面,在界面上添加一个历史按钮,当点击历史按钮时读取日志文件内容。
输入输出流实验
深圳大学实验报告课程名称: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中增加单词按字典序排序输出的信息。
实验七:四位加法器电路设计与模拟
12
通过在 T-SPICE 文件中进行如下设置,可得输入信号 B 的波形图,如下图所示。
输入信号波形,从上到下一次是 B0,B1,B2,B3
13
通过在 T-SPICE 文件中进行如下设置,可得输出信号 S,Cout 的波形图,如下图所示。
输出信号波形,从上到下一次是 S0,S1,S2,S3,Cout
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
Cout
Cout
Cout
Cout
14
name 下面输入 add4,在 Create in folder 下面空白的右边点击 面板上选中 E 盘里的 ex7 文件夹,点击“确定” 。如下图所示。 ,在弹出的“浏览文件夹”
完成“确定”之后,New Design 面板如下图所示,点击“OK”按钮即可,新设计就建 立好了。
2
4.建立新单元:新设计建立好后,接下来就是要建立新单元,一个设计可以包含很多个
建立符号图视图模式如下操作。 选择 Cell——New View, 弹出如下对话框。 在 view type 选项中选择“symbol” ,点击“OK”按钮即可,会出现画符号图的面板。
5.从元件库引用元件:新单元建立好后,就可以在新单元的电路图模式下画电路图了。
实验八-输入输出流
实验八输入输出流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程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。
输入输出流总结
输入、输出流总结一、理解数据流流一般分为输入流(Input Stream)和输出流(Output Stream)两类。
二、Java的标准数据流标准输入输出指在字符方式下(如DOS),程序与系统进行交互的方式,分为三种:标准输入studin,对象是键盘。
标准输出stdout,对象是屏幕。
标准错误输出stderr,对象也是屏幕。
三、字节流方法字节流:从InputStream和OutputStream派生出来的一系列类。
这类流以字节(byte)为基本处理单位。
InputStream、OutputStreamFileInputStream、FileOutputStreamPipedInputStream、PipedOutputStreamByteArrayInputStream、ByteArrayOutputStreamFilterInputStream、FilterOutputStreamDataInputStream、DataOutputStreamBufferedInputStream、BufferedOutputStream1、InputStream 和OutputStreamread():从流中读入数据skip():跳过流中若干字节数available():返回流中可用字节数mark():在流中标记一个位置reset():返回标记过得位置markSupport():是否支持标记和复位操作close():关闭流int read() :从输入流中读一个字节,形成一个0~255之间的整数返回(是一个抽象方法)。
int read(byte b[]) :读多个字节到数组中。
int read(byte b[], int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引off开始的位置,并返回读取得字节数。
write(int b) :将一个整数输出到流中(只输出低位字节,抽象)write(byte b[]) :将字节数组中的数据输出到流中write(byte b[], int off, int len) :将数组b中从off指定的位置开始,长度为len的数据输出到流中flush():刷空输出流,并将缓冲区中的数据强制送出close():关闭流例:打开文件。
实验7 输入输出流
实验7 输入输出流一、实验目的:1、理解I/O流的概念,掌握其分类。
2、掌握文本文件读写、二进制文件读写、处理流类的概念和用法。
3、掌握File类、压缩流类、随机读写流。
4、理解对象串行化的概念和方法。
二、实验任务:实验七第一题内容:1.题目:分别使用FileWriter和BufferedWriter往文件中写入10万个随机数,比较用时的多少。
2.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)import java.io.FileWriter;import java.io.IOException;publicclass FileWriterTester {publicstaticvoid main(String[] args) {String fileName="C:\\Documents and Settings\\Administrator\\桌面\\test6_1.txt";try{long s=System.currentTimeMillis();FileWriter writer = new FileWriter(fileName);java.util.Random r=new java.util.Random();for(int i=0;i<10000;i++){//int j = Integer.parseInt();writer.write(String.valueOf(r.nextInt()));}writer.close();long n=System.currentTimeMillis();//long t=n-s;System.out.println("所消耗的时间为:"+(n-s)+"毫秒");//System.out.print();}catch(IOException iox){System.out.print("file writing wrong!");}}}3.实验结果的分析与评价(该部分如不够填写,请另加附页)实验七第二题内容:1.题目:建立两个大小为1G,内容完全一样的文本文件:Hello1.txt与Hello2.txt。
青岛理工大学-实验3:输入输出流与文件操作
if(Character.isLetter(str.charAt(i))){
str.setCharAt(i,AlpConvert(str.charAt(i))) ;
}//如果是数字
elseif(Character.isDigit(str.charAt(i))){
str.setCharAt(i,DigitConvert(str.charAt(i))) ;
//采用(1234567890)的倒数的方式转换
if(d =='0')return(char)(1+48);
if(d =='1')return(char)(0+48);
return(char)(11 - ((int)d - 48) +48);
}
staticprivatevoidconvert(StringBuffer str){
System.out.println("原文: "+ str);
System.out.println("the result is : ");
while(str !=null||str.length() !=0) {
//加密
convert(str);
///输出密文
System.out.println(str);
for(inti=0;i<str.length();i++){
//如果是字母
if(Character.isLetter(str.charAt(i))){
str.setCharAt(i,AlpConvert(str.charAt(i))) ;
}//如果是数字
实验七输入输出流
一、实验目的:
1.理解Java输入输出的实现机制;
2.掌握常用的输入输出类的功能及方法;
二、实验内容:
1、在下面的程序中我们把11至20这10个long型数据写入到一个名字为文件中,然后读出并显示这些数据中的奇数,请将程序填写完整。
import .*;
public classFileout
{【代码2】;
}
for(long i=0;i<h;i++)
{【代码3】;
.print(","+fi.readLong());
}
fi.close();
}
catch(IOException e){}
}
}
2、编写一个java应用程序,将已经存在的扩展名为.txt文本文件加密后存入另一个文件文件中
程序中代码位置加上适当的语句文件加密程序模板
}
【代码3】// out将数组b的前n单元写到文件。
}
【代码3】//out关闭。Fra bibliotekin=【代码4】//创建指向fileTwo的字符输入流。
.println("加密后的文件内容:");
while((n=in.read(b))!=-1)
{
String str=new String(b,0,n);
.println(str);
{
File file=new File("");
File tempFile=new File("");
try{
FileReader inOne=【代码1】//创建指向文件file的输入流。
BufferedReader inTwo=【代码2】//创建指向inOne file的输入流。
实验六输入输出流与文件
实验六输入输出流与文件实验六输入输出流与文件一、实验目的1.理解数据流的概念2.理解Java流的层次结构3.理解文件的概念二、实验要求1.掌握字节流的基本使用方法2.掌握字符流的基本使用方法3.能够创建、读写、更新文件三、实验内容(一)运行以下程序1.使用标准数据流的应用程序标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
1.程序功能:将键盘上输入的字符在屏幕上显示出来2.编写KY10_1.java 程序文件,源代码如下。
class KY10_1{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++){< p="">System.out.print(" "+ buffer[i]);//在屏幕上显示buffer 元素的值}System.out.println();System.out.println("输出buffer 字符元素:");System.out.write(buffer, 0, buffer.length);}}3.编译、运行KY10_1.java 文件。
c++输入输出流实验报告
实验四输入输出流实验课程名:面向对象程序设计(C++)专业班级:学号:姓名:实验时间:实验地点:指导教师:代码分析:1)在输入时调用getline()以换行符作为输入姓名时的结束标志,已达到输入空格的目的2)输出时采用resetiosflags(ios::right)实现结束向左对齐,用setw(8)实现输出域宽为8,使用一系列的格式控制字符来实现输出格式的控制。
2. 重载运算符“<<”和“>>”,使其能够输入一件商品的信息和输出这件商品的信息。
商品的信息由编号、商品名和价格。
假如商品类Merchandise的框架如下:class merchandise{public:Merchandiss();~Merchandiss();friend istream& operator>>(istream& in,Merchandiss& s);friend ostream&operator<<(ostream& out,Merchandiss& s);private:int no;char *name;double price;};要求实现该类,并编写以下的main函数对该类进行操作。
int main(){ Merchandise mer;cin>>mer;cout<<mer;return 0;}实验代码:#include<iostream>using namespace std;class merchandise{out<<s.no<<' '<<<<' '<<s.price<<endl;return out;}int main(){merchandise mer;cin>>mer;cout<<mer;return 0;}实验结果:实验分析:先定义一个商品的类,构造函数定义为无参函数在函数体中将name置为空,其他为0.在重载>>时使用getline函数,输入name以’\n’作为结束标记重载<<时直接输出。
C++程序设计实验报告
C++程序设计实验报告一、实验目的(1)学习编写简单的C++程序,并掌握C++程序的基本格式与规范,理解C++程序结构的特点。
(2)掌握函数的定义和调用方法。
(3)练习重载函数、函数模板、系统函数的使用。
(4)学习使用VC ++的debug调试功能,使用step into追踪到函数内部。
(5)学习类与对象的定义和使用方法以及对象的声明。
(6)学习具有不同属性的数据成员与成员函数的访问方式。
(7)理解构造函数和析构函数的定义与执行过程。
(8)掌握运算符重载的方法。
(9)学习使用虚函数实现动态多态性。
(10)熟悉流类库中常用的类及其成员函数的用法。
(11)学习标准输人输出及格式控制。
(12)学习对文件的应用方法(二进制文件、文本文件)。
二、实验内容与实验步骤实验一:(1)输人并运行所给的参考程1,并将程序中的注释部分也输人计算机,体会和理解程序的基本格式规范。
(2)编写一个函数把华氏温度转换为摄氏温度,转换公式为C= (F一32)*5/9。
(3)编写重载函数Maxl可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
(4)使用重载函数模板重新实现上小题中的函数Maxl。
(5)使用系统函数pow(x,y)计算x y的值,注意包含头文件math.h。
(6)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。
实验二:(1)定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop,其中rank为枚举类型CPU_ Rank,定义为enum CPU_ Rank(P1 = 1,P2,P3,P4,P5,P6,P7),frequency为单位是MHz的整型数,voltage为浮点型的电压值。
观察构造函数和析构函数的调用顺序。
(2)定义一个简单的Computer类,有数据成员芯片(CPU),内存(ram),光驱(cdrom)等等,有两个公有成员函数run、stop,CPU为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。
单片机P1口输入输出实验
单片机P1口输入输出实 验
单片机可靠的复位是保证单片机正常运行的关键因素。 因此,在设计复位电路时,通常要使RST引脚保持10ms以 上的高电平。当RST从高电平变为低电平之后,单片机就从 0000H地址开始执行程序。本电路是上电自动复位。
将8个LED接在单片机P1端口的P1.0-P1.7引脚上,注意 LED有长短两个引脚,分别表示正负极,其中较短的负极接 单片机,较长的为正极,通过限流电阻R与Vcc相连。
单片机P1口输入输出实 验
单片机端口是集数据输入缓冲、数据输出驱动及 锁存等多项功能一体I/O的电路,特别是把握它准 双向、多功能的特点。单片机4个并行端口是P0、 P1、P2、P3。本实验只讨论P1端口。
1、实验目的
通过实验了解P1口作为输入输出方式使用 时,CPU对P1口操作方式。
•1
单片机P1口输入输出实 2、验实验要求(1)、2)为必做,3)为选做)
•11
单片机P1口输入输出实验
图3 P1端口的一位结构
•12
单片机P1口输入输出实验
5、程序设计
P1口输出控制程序的设计主要包括控制输出程序设计与延时程序设计。 (1)输出控制:当P1.5端口输出低电平,即P1.5=0,这时LED亮,反 之,LED灭,可以使用P1.5=0指令使P1.5端口输出低电平,同样利用指 令使P1.5端口输出高电平。
灭;
状态3:8个LED发光二极管
全灭后,从左右两边开始同时点亮LED发光二极管,全亮
后,8个LED发光二极管再明暗一起闪烁2次 ?
•3
单片机P1口输入输出实 验
3、实验设备与仪器 单片机应用与仿真开发实验台,PC机,
E6000/L仿真器+POD-51仿真头、 Wave软硬件仿真软件。
实验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,单击该按钮可以读取前一个汉字。
实验七 流式输入输出处理
System.out.println(saveFile.getAbsolutePath());
}
}
}
public static void main(String[] args) {
new Window();
}
}
【结果】
将本次上机实验结果按照实验要求内容依次进行,填写实验目标、过程、结果。
【注意事项】
实 验 教 案
课题(项目)名称:流式输入输出处理
计划学时: 2
实验类型: 1.演示性□ 2.验证性□ 3.综合性□ 4.设计性□ 5.其它□
授课日期:年月日
第周 星期第节
实验目的
1.掌握File类对象的创建及常用方法的使用
2.掌握字节输入输出流(FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedReader,BufferedWriter)
if(JFileChooser.APPROVE_OPTION==saveFiel.APPROVE_OPTION){
File saveFile=saveFiel.getSelectedFile();
if(!saveFile.exists()){
try {
saveFile.createNewFile();
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
public class Window extends JFrame implements ActionListener{
JFileChooser openFile,saveFiel;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七字符串和日期类
一、实验目的:掌握字符输入、输出流用法。
二、实验要求:
1.按如下描述,编程实现:
现在有如下格式的成绩单(文本格式)score.txt:
姓名:张三,数学72分,物理67分,英语70分。
姓名:李四,数学92分,物理98分,英语88分。
姓名:王五,数学68分,物理80分,英语77分。
要求按行读取成绩单,并在该行的末尾加上该同学的总成绩,然后再将该行写入到一个名字为scoreAnalysis.txt的文本中。
提示:通过BufferedReader和BufferedWriter实现读写文本文件;
通过Scanner对象分析出字符串中的数据。
2.分析程序的输出结果:
import java.io.*;
public class E {
public static void main(String args[]) {
try{
FileOutputStream out=new FileOutputSteam(“hello.txt”);
FileInputStream in=new FileInputStream(“hello.txt”);
byte content[]=”ABCDEFG”.getBytes();
StringBuffer bufferOne=new StringBuffer();
StringBuffer bufferTwo=new StringBuffer();
int m=-1;
byte tom[]=new byte[3];
out.write(content);
out.close();
while((m=in.read(tom,0,3))!=-1){
String s1=new String(tom,0,m);
bufferOne.append(s1);
String s2=new String(tom,0,3);
bufferTwo.append(s2);
}
in.close();
System.out.println(bufferOne);
System.out.println(bufferTwo);
}
catch(IOException e){}
}
}
3.综合应用(选做):
在C:\newFile文件夹下存放有两类文件:.txt文本文件和.jpg图片文件。
现在需要将C:\newFile文件夹中的.txt文件中的内容读出并显示到屏幕,将C:\newFile文件夹中的.jpg 图片文件复制到D:\newFile文件夹中。
然后删除C:\newFile文件夹中的.jpg图片文件。
提示:通过BufferedReader读文本文件;
通过BufferedInputStream和BufferedOutputStream对象读写图片文件;
通过File类的delete()方法删除文件。