输入、输出流程序设计实验
实验五 输入输出流

实验五输入输出流一、实验目的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程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。
- 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.
数组在内存中是按顺序存放的,可以通过下标直接定位到某一个元素,这是随机存取,链表在内存中不是按顺序存放的,而是通过指针连在一起,为了访问某一元素,必须从链头开始顺着指针才能找到某一个元素,是顺序存取。