输入、输出流程序设计实验
实验五 输入输出流
实验五输入输出流一、实验目的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应用程序,将若干基本数据写入到一个文件,然后再按顺序读出。
java输入输出流实验报告总结
java输入输出流实验报告总结Java输入输出流是Java中非常重要的概念,也是Java程序设计的基础。
在Java 程序中,输入输出流用于处理与设备之间的数据传输,例如键盘、鼠标、文件等。
Java的输入输出流主要包含两种类型:字节流和字符流。
字节流以字节为最小读写单位,而字符流以字符为最小读写单位。
Java的输入流有很多种类型,例如:InputStream、ByteArrayInputStream、FileInputStream等。
这些输入流的共同特点是读取外部数据到程序中。
Java的输出流也有多种类型,例如:OutputStream、ByteArrayOutputStream、FileOutputStream等。
这些输出流的共同特点是将程序中的数据输出到外部。
下面将以实验报告的形式进行总结,详细介绍Java输入输出流的原理和使用方法。
实验一:字节流输入输出1. 实验目的:掌握字节流输入输出的基本使用方法。
2. 实验内容:编写一个程序,实现从文件中读取数据,然后将数据输出到另一个文件中。
3. 实验步骤:a. 创建一个输入流对象,用于读取原始文件的数据。
b. 创建一个输出流对象,用于将读取到的数据输出到目标文件中。
c. 循环读取输入流中的数据,直到读取到文件末尾。
d. 将读取到的数据写入输出流中。
e. 关闭输入流和输出流。
4. 实验结果:成功读取原始文件中的数据,并将数据输出到目标文件中。
实验二:字符流输入输出1. 实验目的:掌握字符流输入输出的基本使用方法。
2. 实验内容:编写一个程序,实现从键盘输入文字,然后将文字输出到屏幕上。
3. 实验步骤:a. 创建一个字符输入流对象,用于读取键盘输入的文字。
b. 创建一个字符输出流对象,用于将读取到的文字输出到屏幕上。
c. 循环读取输入流中的文字,直到读取到换行符。
d. 将读取到的文字写入输出流中。
e. 关闭输入流和输出流。
4. 实验结果:成功从键盘输入文字,并将文字输出到屏幕上。
Java的输入与输出流(实验报告)
成都大学实验报告实验项目名称Java的输入与输出流一、实验目的:1. 理解I/O流的概念,掌握其分类2. 掌握文本文件读写、二进制文件读写二、实验内容(包括源程序及相关说明):1. 分别使用FileWriter 和BufferedWriter 往文件中写入10万个随机数,比较用时。
源代码如下:(1)import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{long t=System.currentTimeMillis();FileWriter fw =new FileWriter("d:\\Ex1.txt");for(int i=1;i<=100000;i++){fw.write((int)(Math.random()*10000)+" \n");}fw.close();t=System.currentTimeMillis()-t;System.out.println("The elapsed: "+t);}}(2)import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{long t=System.currentTimeMillis();BufferedWriter fw=new BufferedWriter(new FileWriter("d:\\Ex1.txt"));for(int i=1;i<=100000;i++){fw.write((int)(Math.random()*10000)+"\n");}fw.close();t=System.currentTimeMillis()-t;System.out.println("The elapsed: "+t);}}2. 生成一个html文件,使其能显示2的幂次(0~9)的表格如下:代码如下:import java.io.*;public class Ex1_1 {public static void main(String[] args) throws IOException{BufferedWriter bw=new BufferedWriter(new FileWriter("d:\\Ex2.html"));bw.write("<table border=1 align=center width=200 height=250>");bw.newLine();bw.write("<tr><td align=center>Power of 2<td align=center>Value</tr>");for(int i=0;i<=9;i++){bw.write("<tr><td align=center>"+i+"<td align=center>"+Math.pow(i, 2)+"</tr>");}bw.write("</table>");bw.newLine();bw.close();}}3. 在文本文件bigbook.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数,并显示统计的时间。
java输入输出流试验
输入输出流一、实验目的:熟悉Java的文件读写机制,练习输入输出流的使用。
二、实验内容:1、键盘输入10个整数,从小到大进行排序。
2、接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用FileOutputStream类读出文件内容显示在屏幕上。
3、将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。
三、实验要求:1. 通过实验掌握文件输入输出流的使用方法;2. 程序必须能够从键盘接收字符串并保存在文件中;3. 程序必须能够读出文件内容显示在屏幕上;4. 写出实验报告。
四、实验步骤:1、键盘输入10个整数,从小到大进行排序。
package javaTest;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Gui_21 {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubBufferedReader br=new BufferedReader(newInputStreamReader(System.in));String str;int array[]=new int[10];for(int i=0;i<10;i++){System.out.println("请输入一个整数:");str=br.readLine();array[i]=Integer.parseInt(str);}for(int j=0;j<9;j++){for(int k=j+1;k<10;k++){if(array[k]<array[j]){int temp=array[k];array[k]=array[j];array[j]=temp;}}}for(int m=0;m<10;m++){if(m!=9)System.out.print(array[m]+",");elseSystem.out.print(array[m]);}}}2、接收键盘输入的字符串,用FileInputStream类将字符串写入文件,用FileOutputStream类读出文件内容显示在屏幕上。
C++输入输出流实验
一、实验目的:1.掌握基本的输入输出操作及格式;2.用C++预定义的文件I/O类进行文件输入输出。
二、实验内容:1.使用I/O流以文本方式建立一个文件test1.txt,写入字符“已成功写入!”再编制一段源程序,使用I/O流以文本方式打开test1.txt,读出内容并显示出来。
2.设输入字符串“Taizhou University”,用串I/O的方法编程逐个读取这个串的每个字符,直到读完为止,并在屏幕上输出。
三、实验过程及记录:fstream若写为ofstream则会发生不匹配的错误,文件的读入读出也要加上相应的ios::out和ios::in四、实验结果及分析:读入读出文件的格式要注意,第二个实验由于‘\0’的存在,导致了最后一个字符多输出了一次,后来用长度改进消除了附源码:1的源码:#include<fstream.h>void main(){fstream file1("test1.txt",ios::out);file1<<"已成功写入!";//读入文件file1.close();file1.open("test1.txt",ios::in);//打开文件char s[20];file1.getline(s,20);cout<<s<<endl;file1.close();}2的源码:#include <iostream.h>#include <strstream.h>void main(){char n;char string[]="Taizhou University";istrstream s(string);int len=strlen(string),i;for(i=0;i<len-1;i++)//输入字符{s >>n;cout<<n<<" ";}cout <<endl;}。
实验七输入输出流
实验七输入输出流一、实验目的(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)把我们在聊天界面中发送的消息保存到日志文件里面,在界面上添加一个历史按钮,当点击历史按钮时读取日志文件内容。
汇编语言-实验五 输入输出程序设计
实验五输入输出程序设计一、实验目的1) 掌握输入输出程序的编写方法。
2) 熟悉系统功能调用的方法。
3) 熟悉动画程序的编写方法。
二、实验内容1)在CRT上每隔一秒连续显示字符0-9。
编程提示为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。
为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。
为了保证输出是十进制,增量后用DAA调整指令。
由于输出为一位十进制数,用AND 0FH 指令屏蔽高4位。
2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。
3)编制在屏幕上画线的子程序,调用该子程序画一矩形。
4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。
5)创建一磁盘文件,保存从键盘输入的字符串。
6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。
7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。
8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。
三、源程序EXAM5-1STACK SEGMENT STACKDB 1024 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV BL,0LP:MOV DL,20HMOV AH, 2INT 21HMOV AL,BLADD AL, 0DAAAND AL,0FHMOV BL,ALPUSH BXOR AL,30HMOV DL,ALMOV AH, 2INT 21HMOV BX,3E8HLP2:MOV CX,176H ;延时1msLP1:PUSHFPOPFLOOP LP1DEC BXJNZ LP2POP BXINC BLJMP LPCODE ENDSEND START执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格:0 1 2 3 4 5 6 7 8 9 ……EXAM5-2STACK SEGMENT STACKDB 1024 DUP(0)STACK ENDSDA TA SEGMENTBUFF DB 6,7 DUP(?),‘$’DA TA ENDSINPUT MACRO BUFEMOV DX,OFFSET BUFEMOV AH,0AHINT 21HENDMPUTCHAR MACRO CHARMOV DL,CHARMOV AH,02HINT 21HENDMCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK START:MOV AX,DA TAMOV DS,AXINPUT BUFF ;读取字符串➝BUFFPUTCHAR 0DHPUTCHAR 0AH ;光标另起一行MOV CX,0003HNEXT:PUTCHAR 2AHLOOP NEXTMOV CL,BUFF+1SUB CH,CHMOV BX,OFFSET BUFF+2BEGIN:MOV AL,[BX]PUTCHAR ALINC BXLOOP BEGINMOV CX,0003HNEXT1:PUTCHAR 2AHLOOP NEXT1MOV AH,4CHINT 21HCODE ENDSEND START执行程序EXAM5-2·EXE,输入HELLO↙屏幕上显示结果:*** HELLO ***EXAM5-5NAME EXAM6SSTACK SEGMENT STACK ’stack’DB 1024 DUP(?)SSTACK ENDSDATA SEGMENTASKNAME DB 0DH,0AH,’Enter the’DB ’dest file name:$’ASKCONT DB 0DH,0AH,’Enter the string’DB ’as file content:’0dh,0ah,’$’ FILEBUF DB 62,63DUP(?)HAND_D DW?MSGMER DB 0DH,0AH,0AHDB ’Directory full’,0DH,0AH,’$’MSGWER DB 0DH,0AH,0AHDB ’Disk full’,0DH,0AH,’$’MSGSUC DB 0DH,0AH,0AH,DB ’Write file is Successful’DB 0DH,0AH,’$’DATA ENDSDISPLY MACRO TEXTMOV DX,OFFSET TEXTMOV AH,09HINT 21HENDMCRHAND MACRO PATH,ATTRMOV DX,OFFSET PATH ;文件名MOV CL,ATTR ;文件属性XOR CH,CHMOV AH,3CHINT 21HENDMWRHAND MACRO HAND,BUFF,BYTEMOV BX,HANDMOV DX,OFFSET BUFFADD DX,2MOV CL,BYTEXOR CH,CHMOV AH,40HINT 21HENDMCLHAND MACRO HANDMOV BX,HANDMOV AH,3EHINT 21HENDMCODE SEGMENTPROG PROC FARASSUME CS:CODE,DS:DATA,SS:SSTACKPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXDISPLY ASKNAME ;提示输入文件名MOV DX,OFFSET FILEBUFMOV AH,0AHINT 21HMOV DI,OFFSET FILEBUF[2]MOV BL,FILEBUF[1]XOR BH,BHMOV BYTE PTR[BX][DI],00HCRHAND FILEBUF[2],0 ;创建并打开新文件JC CRTERRMOV HAND_D,AX ;存文件句柄DISPLY ASKCONT ;提示键入文件内容MOV DX,OFFSET FILEBUFMOV AH,0AHINT 21HWRHAND HAND_D,FILEBUF,FILEBUF[1]JC WRITERRCLHAND HAND_DDISPLY MSGSUCJMP EXIT CRTERR:DISPLY MSGMERJMP EXIT WRITERR:DISPLY MSGWER EXIT:RETPROG ENDPCODE ENDSEND PROG。
实验九 输入输出流
实验九输入输出流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的输入输出流将一个文本文件的内容读出并在控制台将文件中的内容打印出来。
(参考书上P289页)5)从控制台输入一串字符串,将该串字符串写入到磁盘某位置上的out.txt文件中去。
(参考教材P290页)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程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。
IO口输入、输出实验
实验一I/O口输入、输出实验2010.04.20一、实验目的:了解LED二极管的工作原理。
掌握LED二极管亮灭左右移的编程方法。
二、实验原理:八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮。
我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。
表1三、实验电路原理图四、程序框图实验程序:START: MOV ACC,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)MOV P1,ACC ;将ACC的数据送P1口MOV R0,#7LOOP1: RL A ;将ACC中的数据左移一位MOV P1,A ;把ACC左移后的数据送p1口显示ACALL DELAY ;调用延时子程序DJNZ R0,LOOP1 ;没有移动够7次继续移动MOV R1,#7LOOP2: RR A ;将ACC中的数据右移一位MOV P1,A ;把ACC右移后的数据送p1口显示ACALL DELAYDJNZ R1,LOOP2AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果;----- 延时子程序 -----DELAY: MOV R2,#255D1: MOV R3,#255DJNZ R3,$DJNZ R2,D1RET ;延时子程序结束,返回到调用处的下一句END ;程序结束实验现象:实验实现了单一灯的左移右移。
开始时P1.0口的LED点亮,然后P1.1→P1.2→P1.3→┅→P1.7的LED依次点亮,实现了右移。
当P1.7的LED点亮后,P1.6→P1.5→P1.4→┅→P1.0口的LED又依次点亮,实现了左移。
然后循环,从而实现灯的循环左右移。
实验结论:通过单片机对P1口赋值,然后利用移位RL和RR指令使相应的LED点亮,可以实现灯的左右移。
实验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。
C++实验 输入输出流
实验7 输入输出流[实验目的]1、深入理解C++的输入输出的含义和实现方法。
2、掌握对文件的输入输出操作。
[实验要求]给出以下各实验内容的源程序代码,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交。
[实验学时] 2学时。
[实验内容]1、编程序,在显示屏上显示一个由字母B组成的三角形。
(用控制符或流成员函数控制输出格式)[源程序]#include <iostream>#include <iomanip>using namespace std;int main(){for(int n=1;n<8;n++)cout<<setw(20-n)<<setfill(' ')<<" "<<setw(2*n-1)<<setfill('B')<<"B"<<endl;return 0;}[测试数据]2、建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作:①从键盘输入16个整数,分别存放在两个磁盘文件中(每个文件中放8个整数);②从f1.dat读入8个数,然后存放到f2.dat文件原有数据的后面;③从f2.dat中读入16个整数,将它们按从小到大的顺序存放到f2.dat(不保留原来的数据)。
④分别输出文件f1.dat和f2.dat的内容。
[源程序]#include <iostream>#include <fstream>using namespace std;void fun1(){int a[8];ofstream outfile1("f1.dat"),outfile2("f2.dat");//分别定义两个文件流对象if(!outfile1) //检查打开f1.dat是否成功{cerr<<"open f1.dat error!"<<endl;exit(1);}if(!outfile2) //检查打开f2.dat是否成功{cerr<<"open f2.dat error!"<<endl;exit(1);}cout<<"请输入8个整数,将存放于f1文件中:"<<endl; //输入8个数存放到f1.dat文件中for(int i=0;i<8;i++){cin>>a[i];outfile1<<a[i]<<" ";}cout<<"请输入8个整数,将存放于f2文件中:"<<endl; //输入8个数存放到f2.dat文件中for(i=0;i<8;i++){cin>>a[i];outfile2<<a[i]<<" ";}outfile1.close(); //关闭f1.dat文件outfile2.close(); //关闭f2.dat文件}void fun2(){ifstream infile("f1.dat");//f1作为输入文件if(!infile){cerr<<"open f1.dat error!"<<endl;exit(1);}ofstream outfile("f2.dat",ios::app);//f2.dat作为输出文件,文件指针指向文件尾,向它写入的数据放在原来数据的后面if(!outfile){cerr<<"open f2.dat error!"<<endl;exit(1);}int a;for(int i=0;i<8;i++){infile>>a; //磁盘文件f2.dat读入一个整数outfile<<a<<" "; //将该数存放到f2.dat中}infile.close(); //关闭输入文件outfile.close(); //关闭文件}void fun3(){ifstream infile("f2.dat");//定义输入文件流infile,以输入方式打开f2.datif(!infile){cerr<<"open f2.dat error!"<<endl;exit(1);}int a[16];int i,j,t;for(i=0;i<16;i++)infile>>a[i]; //从磁盘文件f2.dat读入16个数放在数组a中for(i=0;i<15;i++) //用气泡法对20个数排序for(j=0;j<15-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}infile.close(); //关闭输入文件法f2.datofstream outfile("f2.dat",ios::out); //f2.dat作为输出文件,文件原有内容删除if(!outfile){cerr<<"open f2.dat error!"<<endl;exit(1);}cout<<endl<<"输出f2文件中数据:"<<endl;for(i=0;i<16;i++){outfile<<a[i]<<" "; //向f2.dat输出已排序的16个数cout<<a[i]<<" "; //同时输出到显示器}cout<<endl;outfile.close();}int main(){fun1();fun2();fun3();return 0;}[测试数据]3、利用字符串流完成下列操作:①将3个职工的数据按职工编号由小到大的顺序(包括编号、姓名、年龄、工资)保存在字符数组c中。
java实验七 输入输出流
实验七输入输出流一.实验目的和要求目的:1、掌握使用输入输出流进行文件的读写操作。
要求:1、实验报告给出内容1,2的填充代码以及内容3的全部源代码。
二.实验内容1、按程序模板要求,将注释处替换为Java程序代码。
实现文件加密。
2、按程序模板要求,将注释处替换为Java程序代码。
给文件的内容添加行号.3、串行化对象Student到本地文件,并在下一次运行程序时用来初始化。
(选做)三.实验环境硬件:(1)学生用微机(2)多媒体实验教室软件:(1)Windows XP中文操作系统(2)JDK控制台四.算法描述及实验步骤实验步骤:1、按程序模板要求,将注释处替换为Java程序代码该程序将已存在的文本文件加密后存入另一个文本文件中。
请按模板要求,将【代码1】~【代码6】替换为Java程序代码SecretExample.javaimport java.io.*;public class SecretExample{public static void main(String args[ ]){File fileOne=new File("hello.txt"),fileTwo=new File("hello.secret");char b[]=new char[100];try{FileReader in=【代码1】 // 创建指向fileOne的字符输入流FileWriter out=【代码2】 // 创建指向fileTwo字符输出流int n=-1;while((n=in.read(b))!=-1){for(int i=0;i<n;i++){b[i]=(char)(b[i]^'a');}【代码3】 // out将数组b的前n单元写到文件 }【代码3】 // out关闭in=【代码4】 // 创建指向fileTwo的字符输入流System.out.println("加密后的文件内容:");while((n=in.read(b))!=-1){String str=new String(b,0,n);System.out.println(str);}in=【代码5】 // 创建指向fileTwo的字符输入流System.out.println("解密后的文件内容:");while((n=in.read(b))!=-1){for(int i=0;i<n;i++){b[i]=(char)(b[i]^'a');}System.out.printf(new String(b,0,n));}【代码6】 // in关闭}catch(IOException e){System.out.println(e);}}}2、按模板要求,将【代码1】~【代码14】替换为Java程序代码。
实验五 输入与输出程序设计
《微型计算机原理》设计性实验指导书实验六输入与输出程序设计一、实验目的1.掌握常用DOS中断调用的功能以及在应用程序中的使用方法。
2.学习键盘输入和屏幕输出的基本方法。
3.宏指令、子程序在应用程序中的使用。
4.汇编语言程序设计的调试与完善。
二、设计指标与实验要求1.设计内容本实验要求设计完成:①屏幕输出提示(如“Want input(Y/N)?”),若键入N 则结束程序返回操作系统;键入Y则转2步;键入的是其它字母则回①步。
②换行后输出提示(如“please input a strings:”),且在该提示后键入一字符串(输入到输入缓冲区)。
③换行后输出提示(如“your inputting is:”),在该提示后输出由②步输入的字符串。
④换行后输出提示“Want continue(Y/N)? ”,若键入Y则转②步;键入N则结束程序返回操作系统;其它字母则回第④步。
2.设计要求①按屏幕提示要求输入,从屏幕上获得正确结果。
②把程序中常用的中断调用定义成宏指令(至少定义2个)。
③字符串回显部分设计成子程序,可以选择用21H中断的2号或9号功能来实现,应能显示由主程序指定的任一字符串。
要注意这两种方法实现的设计过程是不同的。
采用2号功能的,子程序输入参数为“回显字符串地址”和“回显字符数”;采用9号功能的,子程序输入参数为“回显字符串地址”。
④屏幕的提示信息显示格式尽量做到兼顾美观。
3.实验步骤①.选用合适的程序文本编辑软件编辑源程序,并为文件取以.ASM为扩展名的文件存盘。
②.用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。
③.用LINK对由MASM汇编后产生的目标文件做连接,生成可执行文件;若有错误(同上)回步骤1修改源程序文件。
④.对存在问题的程序,用CV调试程序,检察运行结果,并调试程序。
⑤.反复验正程序的正确性。
⑥.完善、改进所设计的程序算法、功能、界面、或性能等指标。
输入和输出流
实验四:输入和输出流1.实验目的掌握各种类型数据写入文件或读出文件的操作。
掌握java常用I/O输入流和输出流;2.实验内容1) 设计一个类,用来将文本文件中的内容一行一行地在屏幕上显示出来,每次读取一个文本行;2)设计一个类,用来从键盘上读入任意数量的字符,并写入到文本文件中,再把字符串从这个文件中复制到另一个文件中;3)键盘输入一个字符串,统计一个字符串中英文字母和数字的个数;4)设字符串String = "1 2 3 4 5 6 7 8 9",用输入流捉个读取这个串的每个数,并在屏幕上输出。
3. 实验结果1) 设计一个类,用来将文本文件中的内容一行一行地在屏幕上显示出来,每次读取一个文本行;package text;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.*;public class test{public static void main(String args[]) throws IOException{File filePath = new File("test.txt");BufferedReader br;String s = null;try {br = new BufferedReader(new FileReader(filePath));while ((s = br.readLine()) != null){System.out.println(s + "\r\n");//回车换行符号是"\r\n".}}catch (FileNotFoundException e){。
java输入输出实验报告
java输入输出实验报告《Java输入输出实验报告》摘要:本实验主要通过使用Java编程语言进行输入输出实验,通过实验对Java的输入输出功能进行了深入了解和学习。
实验结果表明,Java具有强大的输入输出功能,能够满足不同场景下的输入输出需求。
一、实验目的1. 了解Java的输入输出功能2. 掌握Java中输入输出的基本方法和技巧3. 熟练运用Java输入输出进行实际编程二、实验内容1. 使用Java的标准输入输出流进行输入输出操作2. 使用Java的文件输入输出流进行文件的读写操作3. 使用Java的网络输入输出流进行网络数据的读写操作三、实验步骤1. 编写Java程序,使用标准输入输出流进行简单的输入输出操作2. 编写Java程序,使用文件输入输出流进行文件的读写操作3. 编写Java程序,使用网络输入输出流进行网络数据的读写操作四、实验结果1. 使用标准输入输出流进行输入输出操作的程序能够正常运行,能够实现对用户输入的数据进行输出并进行相应的处理。
2. 使用文件输入输出流进行文件的读写操作的程序能够正常运行,能够实现对文件的读取和写入操作。
3. 使用网络输入输出流进行网络数据的读写操作的程序能够正常运行,能够实现对网络数据的读取和写入操作。
五、实验总结通过本次实验,我对Java的输入输出功能有了更深入的了解和掌握。
Java具有丰富的输入输出功能,能够满足不同场景下的输入输出需求。
同时,我也学会了如何使用Java进行标准输入输出、文件输入输出和网络输入输出的操作,这些知识对我今后的编程工作将会有很大的帮助。
六、实验感想本次实验让我对Java的输入输出功能有了更深入的了解,也让我对Java编程语言有了更深的认识。
通过实验,我不仅学会了如何使用Java进行输入输出操作,还学会了如何处理各种输入输出异常情况,这对我今后的编程学习和工作都将会有很大的帮助。
希望今后能够继续深入学习Java编程,提升自己的编程能力。
输入输出程序设计实验
输入输出程序设计实验
输入输出程序设计实验是一种编程实验,旨在测试和验证程序的输入和输出功能。
以下是输入输出程序设计实验的一些常见任务和要求:
1. 输入验证:确保程序能够正确地读取用户输入的数据,并进行必要的验证,例如检查输入的数据类型、格式和范围是否符合要求。
2. 输出格式化:确保程序能够将结果以适当的格式输出,例如表格、图形或文本。
3. 错误处理:确保程序能够妥善处理错误情况,例如输入数据不正确或异常情况,并给出适当的错误消息。
4. 数据转换:测试程序是否能够将输入数据转换为所需格式或类型,并进行必要的转换处理。
5. 数据排序:测试程序是否能够对输入数据进行排序,例如按照数字大小、字母顺序或时间顺序等。
6. 数据筛选:测试程序是否能够对输入数据进行筛选,例如根据特定条件过滤掉不需要的数据。
7. 数据统计:测试程序是否能够对输入数据进行统计,例如计算平均值、中位数、众数等。
8. 数据可视化:测试程序是否能够将数据以图形或图表的形式呈现,例如柱状图、折线图或饼图等。
在完成输入输出程序设计实验时,需要注意以下几点:
1. 确定实验目的和要求,并制定详细的实验计划和步骤。
2. 选择适当的编程语言和工具,并熟悉相关语法和库函数。
3. 设计合理的输入和输出方案,并进行充分的测试和验证。
4. 记录实验过程和结果,并进行总结和分析。
5. 根据实验结果进行优化和改进,以提高程序的性能和稳定性。
实验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,单击该按钮可以读取前一个汉字。
实验06_Java输入输出流
实验06_Java输入输出流实验四 Java 输入输出流1.实验目的(1) 掌握输入输出流的总体结构;(2) 掌握流的概念;(3) 了解各种流(包括文件流、过滤流、对象的序列化、随机访问)的使用。
2.实验内容实验题1 编写一个Java Application程序,打印命令行输入的所有参数。
[基本要求] 编写完整程序。
如图建立java project:结果:源代码:package ;import java.util.Scanner;public class PrintString {public static void main(String[] args) {Scanner reader =new Scanner(System.in);System.out.println("输入你的名字:");String name=reader.nextLine();System.out.println("输入你的年龄:");String age=reader.nextLine();System.out.println("输入你的性别:");String gender=reader.nextLine();System.out.println("名字:"+name+"年龄:"+age+"性别:"+gender);}}实验题2 通过键盘输入路径,搜索指定路径下的全部内容。
实验题3设计一个类FileRWTest,实现从input.txt文件中读入数据到字符数组cBuffer中,然后再写入到文件“output.txt”中。
如图建立java project在根目录下建立对应文件夹运行java程序之后源代码:package 2;import java.io.*;public class FileRWTest {public static void main(String[] args) {// TODO Auto-generated method stub File sourceFile =new File("input.txt");File targetFile =new File("output.txt"); char cBuffer[]=new char[100];try {Writer out =new FileWriter(targetFile,true); Reader in =new FileReader(sourceFile);int n=-1;while((n=in.read(cBuffer))!=-1){out.write(cBuffer,0,n);}out.flush();out.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}实验题4 建立一个书籍信息的文本文件,其中包括编号、书籍名称、版本、价格、销售额字段及5本书籍的记录。
实验7 输入输出流库
实验内容程序Ex_File:用文件来实现一个学生记录的添加、查找等操作。
提示:学生记录用类CstudenRec表示,它的数据成员有:姓名、学号、3门课的成绩以及总平均分,成员函数记录显示Print、记录键盘输入Input和数据校验Validate 以及“<<””〉>"运算符重载等。
文件操作用CStuFile类定义,成员函数有数据的添加Add、查找Seek、显示List等。
实验准备和说明(1)在学习完第2章内容之后进行本次实验。
(2)编写本次上机所需要的程序。
实验步骤1。
创建工作文件夹打开计算机,在“D:\Visual C++程序、LiMing”文件夹中创建一个新的子文件夹“实验7"。
2.创建控制台应用程序项目Ex_File创建控制台应用程序项目Ex_File的具体步骤如下。
(1)启动Visual C++6。
0.(2)选择“文件"→“新建”菜单命令,显示出“新建”对话框.从列表框中选中Win32Console Application项。
(3)在“工程”编辑框中输入控制台应用程序项目名称Ex_File,并将项目文件夹定位到“D:\Visual C++程序\LiMing\实验7"。
(4)单击“确定”按钮,显示Win32应用程序向导对话框.选中An empty project项。
单击“完成”按钮,系统将显示向导创建的信息,单击“确定”按钮将自动创建此应用程序。
3.添加Ex_File.h文件添加Ex_File.h文件的具体步骤如下.(1)选择“文件"→“新建"菜单命令,将“新建”对话框切换到“文件”标签页面,选中“C/C++Header File"文件类型,在文件编辑框中输入Ex_File。
h,单击“确定”按钮。
(2)在Ex_File.h中添加CstudentRec类代码:#include〈iostream.h〉#include<iomanip。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五输入、输出流程序设计实验
【实验目的】
1.理解输入/输出流相关概念
2.掌握输入/输出流的常用操作
3.理解文件概念
4.掌握文件流的常用操作
【实验内容】
2.打开指定的一个文本文件,在每一行前面加上行号。
(1.2题二选一)程序如下:
#include <stdio.h>
#include <string.h>
#define BUFF_SIZE 50
int main()
{
char file[256],buff[BUFF_SIZE+1];
FILE* fin = NULL;
int bL = 1;
int iLN = 0; // line number
printf("请输入需要处理的文件名路径:\n");
scanf("%s",file);
if (NULL == (fin = fopen(file,"r")))
{
printf("错误. \n");
return -1;
}
while (NULL != fgets(buff,BUFF_SIZE,fin))
{
if (bL) printf("%3d:%s",++iLN,buff);
else printf("%s",buff);
if (buff[strlen(buff)-1] == '\n') bL = 1;
else bL = 0;
}
fclose(fin);
}
运行结果:
3.编写程序,从键盘输入5个学生的学生信息,包括学号、姓名、3门课程的成绩,计算3门课的平均成绩,将全部信息以二进制方式保存到文件中。
程序如下:
#include <stdio.h>
#include <stdlib.h>
#define N 5
struct student
{
int num;
char name[10];
float score[3];
float aver;
}stu[N];
void save()
{
FILE *fp;
int i;
if((fp=fopen("stud","wb"))==NULL)
{
printf("cannot open the file stud!\n");
exit(0);
}
for(i=0;i<N;i++)
{
if((fwrite(&stu[i],sizeof(struct student),1,fp))!=1)
printf("flie write error!\n");
}
fclose(fp);
}
int main()
{
int i;
printf("请输入学号、姓名、三门课程成绩:\n");
for(i=0;i<N;i++)
{
scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].s core[2]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
}
save();
FILE *fp;
if((fp=fopen("stud","rb"))==NULL)
{
printf("cannot open the file stud!\n");
exit(0);
}
printf("the data:\n");
printf("num name score1 score2 score3 average\n");
for(i=0;i<N;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("%-2d%5s%7.1f%7.1f%7.1f%7.1f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score [1],stu[i].score[2],stu[i].aver);
} //输出从文件中读取的数据在屏幕上以验证
fclose(fp);
return 0;
}
运行结果:
【思考题】
1.什么叫流?流的提取和插入指的是什么?
2.C++有哪4个预定义的流?它们分别与什么具体设备相关联?
3.标准输出与标准错误在输出方面有那些异同?
4.为什么在不为每个类型提供明确指示的情况下,cout仍能够显示不同的C++类型?
5.C++进行文件输入/输出的基本过程是什么?
6.C++中顺序文件和随机文件有什么区别?
1.
流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动,一般意义下的读操作在流数据抽象中被称为(从流中)提取,写操作被称为(向流中)插入。
2.
C++中包含几个预定义的流对象,它们是标准输人流对象cin、标准输出流对象cout、非缓冲型的标准出错流对象cerr和缓冲型的标准出错流对象clog。
这4个流所关联的具体设备为:cin 与标准输人设备相关联,通常指键盘
cout 与标准输出设备相关联,通常指显示器
cerr 与标准错误输出设备相关联(非缓冲方式),通常指显示器
clog 与标准错误输出设备相关联(缓冲方式),通常指显示器
3.
标准错误句柄编号为2, 常用于输出错误信息,标准输出句柄编号为1, 常用于输出信息,其他都一样。
4.
ostream已经重载了各种基础类型的标准输出。
5.
CFile file("文件的具体路径名:",CFile::modeRead);
char buf[1024] = {0};
file.read(buf,1024);
基本过程就是这样的。
6.
数组在内存中是按顺序存放的,可以通过下标直接定位到某一个元素,这是随机存取,链表在内存中不是按顺序存放的,而是通过指针连在一起,为了访问某一元素,必须从链头开始顺着指针才能找到某一个元素,是顺序存取。