输入输出流实验
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. 实验结果:成功从键盘输入文字,并将文字输出到屏幕上。
实验一 P1口输入、输出实验

实验一P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个拨动开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
二.实验目的1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
三. 实验电路及连线实验一时,P1.0-P1.7接L0-L7。
实验二时,P1.0-P1.7接K0-K7,PO0-PO7接L0-L7。
CS273接8300H。
四.实验说明1.P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS五.实验框图程序框图:TP1A.ASM主程序框图TP1B.ASM主程序框图六.附加实验内容1、用P1口的P1.0-P1.3作输出口接4个发光二极管,P1.4-P1.7作输入口接4个拨动开关,将开关的状态读进来并在发光二极管上显示。
七.实验报告要求1、书写实验目的、实验内容、实验连线、以及实验中的观察结果;2、画出流程图、编写实验程序,写出实验的心得体会。
io流实验报告心得

io流实验报告心得在进行io流实验的过程中,我学到了很多关于输入输出流的知识,也对其使用方法有了更深入的了解。
通过这次实验,我不仅巩固了之前学到的知识,还学到了一些新的技巧和注意事项。
我了解到io流是用于处理输入输出的一种机制,它把数据从一个地方传输到另一个地方。
在实验中,我通过使用FileInputStream和FileOutputStream类来创建输入输出流对象,并使用它们来读取和写入数据。
通过使用这些类,我可以操作各种类型的文件,包括文本文件和二进制文件。
在实验的过程中,我发现输入输出流的使用是非常灵活的。
无论是读取文件还是写入文件,都可以根据具体的需求选择合适的方法和参数。
例如,通过使用BufferedReader类,我可以一次读取一行文本,而不是逐个字符读取。
这样可以提高效率,并且使代码更加简洁易读。
我还学到了一些关于异常处理的知识。
在实验中,我发现在使用io 流时,很容易出现各种异常,例如文件找不到、文件权限不足等。
为了避免程序崩溃,我学会了使用try-catch语句来捕获和处理这些异常。
通过使用这些语句,我可以在出现异常时进行相应的处理,例如输出错误信息或者进行重试操作。
在实验中,我还学到了关于流的关闭操作。
在使用io流时,一定要记得在使用完毕后关闭流,以释放系统资源。
我学会了使用try-finally或try-with-resources语句来确保流的正确关闭。
这样可以避免资源泄漏的问题,同时也可以提高程序的性能。
通过这次实验,我还了解到了一些关于文件的操作。
在实验中,我学会了如何创建文件和文件夹,如何遍历文件夹中的文件,以及如何删除文件和文件夹。
这些知识对于日常的文件操作非常有用,可以帮助我们更好地管理和处理文件。
总的来说,通过这次io流实验,我对输入输出流有了更深入的了解,学到了一些新的技巧和注意事项。
我相信这些知识将在我的编程生涯中发挥重要的作用。
同时,这次实验也让我更加熟悉了Java编程语言,提高了我的编程能力。
数字量输入输出实验

数字量输入输出实验一、实验目的了解P1口作为输入输出方式使用时,CPU 对P1口的操作方式。
二、实验环境1、软件环境要求Windows XP操作系统以及Keil C51 单片机集成开发环境。
2、硬件环境要求电脑一台,TD-51单片机系统,开关及LED显示单元,单次脉冲单元。
三、实验内容编写实验程序,将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。
提高部分:LED灯控制要求:通过KK1实现LED灯工作方式即时控制,完成LED灯左循环、右循环、间隔闪烁功能。
四、实验分析P1口是8位准双向口,每一位均可独立定义为输入输出,输入位置1。
通过A的左/右移位及赋值55H、0AAH,再将A值送入P1,可实现LED灯左循环、右循环、间隔闪烁功能。
五、实验步骤(一)基础实验程序及实验程序流程图如下。
实验程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV P1,#0F0H ;将开关状态送入P1高位MOV A,P1 ;送入ASWAP A ;高低位互换MOV P1,A ;将开关状态送入P1低位JMP MAIN ;循环SJMP $END程序流程图:图1 LED开关控制显示功能图图2 实验接线图实验步骤:1. 按图2所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;2. 编写实验程序,编译链接无误后进入调试状态;3. 运行实验程序,观察实验现象,验证程序正确性;4. 按复位按键,结束程序运行,退出调试状态;5. 自行设计实验,验证单片机其它IO 口的使用。
(二)提高实验程序及实验程序流程图如下。
实验程序:实验程序流程图:ORG 0000HLJMP MAINORG 0100HMAIN:KT: ;检查KK1SETB P3.3JNB P3.3,KTCLR P3.3LL1: ;左循环MOV A,#01HX1:MOV P1,ACALL DELAYRL ASETB P3.3JNB P3.3,X1CLR P3.3LL2: ;右循环MOV A,#80HX2:MOV P1,ACALL DELAYRR ASETB P3.3JNB P3.3,X2CLR P3.3LL3: ;间隔闪烁MOV A,#55HMOV P1,ACALL DELAYMOV A,#0AAHMOV P1,ACALL DELAYSETB P3.3JNB P3.3,LL3CLR P3.3JMP KTDELAY: ;延时子程序MOV R2,#00H图3 实验流程图MOV R3,#00HABC:DJNZ R2,ABCDJNZ R3,ABCRETSJMP $END实验步骤:(1)按图4连接实验电路;(2)编写实验程序,编译、链接无误后启动调试;(3)运行实验程序,每按一次KK1+,观察实验现象;(4)验证程序功能,实验结束按复位按键退出调试。
实验一 顺序结构与输入输出

2、掌握C++中的基本输入/输出
掌握:1)cout代表c++的输出流。
cin代表c++的输入流。
它们都是在头文件“iostream”中定义。
2)"cout"必须与"<<"一起使用,“<<”起到插入的作用。
在一条语句中可以多次使用“<<”输出多个数据。
如:cout<<a<<b<<endl;(输出a,b的值。)
3)用“cin”实现输入,必须与“>>”一同使用,“>>”起到提取的作用。
同样的在一条语句中可以多次使用“>>”输入多个数据。
如:cin>>a>>b;(输入a,b的值。)
4)输入输出是注意不能写成“cout<<a,b<<endl;”,"cin>>a,b;"
main()
{
char a,b;
int c;
scanf("%c%c%d",&a,&b,&c);
printf("%c,%c,%d\n",a,b,c);
}
A)1 2 34B)1, 2, 34
C)’1’,’2’,34D)12 34
问题2在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示12 34,则应修改程序中的哪条语句?怎样修改?
上机前编写好以下程序(1-4为填空,5为程序改错)。上机输入和调试自己所编的程序,检查实验结果是否正确,上机结束后,整理实验报告,并把实验报告电子版上传到ftp://192.168.80.204服务器上。
单片机原理及应用实验二报告

单片机原理及应用实验二报告实验二:单片机IO口的输入输出实验一、实验目的:1.理解并掌握单片机IO口的输入输出原理;2.掌握基础的输入输出编程技巧;3.熟悉单片机实验的基本流程和实验报告格式。
二、实验器材:1.STM32F103C8T6开发板2.LED灯3.电阻(220Ω)4.面包板、杜邦线等。
三、实验原理:单片机的IO口是实现与外部器件进行通信的重要接口,通过编程,我们可以控制IO口的状态(低电平或高电平)来实现对外部器件的控制或检测。
IO口的输入输出原理主要有两种:1.三态输出方式:通过设置IO口的DDR寄存器来将IO口设置为输出模式(推挽输出),并通过设置IO口的ODR寄存器来控制IO口的输出状态为低电平或高电平;2.上拉输入方式:通过设置IO口的DDR寄存器来将IO口设置为输入模式,同时设置IO口的CR寄存器的PUPD位为上拉使能,通过读取IO口的IDR寄存器可以获取IO口的输入状态。
四、实验步骤:1.连接电路:将STM32F103C8T6开发板的VDD和VSS(即5V和GND)分别连接到面包板的3V3和GND,将LED的阳极(长脚)连接到STM32F103C8T6开发板的PA0引脚,将LED的阴极(短脚)通过一个220Ω的电阻连接到GND。
2. 打开Keil uVision5软件,创建一个新的工程,并选择适合的芯片型号(STM32F103C8T6)。
3.编写代码实现将PA0引脚设置为输出模式,并控制LED的亮灭。
五、实验代码:```c#include "stm32f10x.h"void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);int main(void)GPIO_Configuration(;while (1)GPIO_SetBits(GPIOA, GPIO_Pin_0); // 点亮LEDGPIO_ResetBits(GPIOA, GPIO_Pin_0); // 关闭LED}```六、实验结果与分析:七、实验心得:本次实验主要学习了单片机IO口的输入输出原理,了解了三态输出方式和上拉输入方式,并通过实际编写代码的方式,在STM32F103C8T6开发板上实现了控制LED的亮灭。
采用全数字化视频和声音发送接口HDMI的视频流输入输出实验

采用全数字化视频和声音发送接口HDMI的视频流输入输出实验本实验基于ECE-CV K7-75T FPGA开发板实现。
软件使用Vivado 2018.1。
基于HDMI的视频流输入输出实验1 HDMI概述HDMI高清多媒体界面(英语:High Definition MulTImedia Interface)是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。
HDMI可用于机顶盒、DVD播放机、个人计算机、电视游乐器、综合扩大机、数字音响与电视机等设备。
HDMI可以同时发送音频和视频信号,由于音频和视频信号采用同一条线材,大大简化系统线路的安装难度。
图1 HDMI硬件实物如图1,红框为ECE-CV板的HDMI输入输出接口,最高支持到1080P@60HZ的图像输入和输出功能。
图2 HDMI_IN 和HDMI_OUT原理图如图2所示为ECE底板的HDMI_IN和HDMI_OUT的原理图,下面对ECE-EDA和ECE-CV 的HDMI接口的引脚介绍如表1所示:表1 ECE-CV板HDMI接口引脚介绍信号名称Kintex7引脚标号电平备注HDMI_RX0_PR25TMDS_33HDMI接收数据0正HDMI_RX1_PT24TMDS_33HDMI接收数据1正HDMI_RX2_PT22TMDS_33HDMI接收数据2正HDMI_RX_CLK_PN21TMDS_33HDMI接收时钟正HDMI_RX_CECP24LVCMOS33HDMI遥控器信号HDMI_RX_HPDN24LVCMOS33HDMI 热插拔检测信号HDMI_RX_SDAM25LVCMOS33HDMI IIC数据HDMI_RX_SCLL25LVCMOS33HDMI IIC时钟HDMI_TX0_PM21TMDS_33HDMI发送数。
i0口输入输出实验报告

竭诚为您提供优质文档/双击可除i0口输入输出实验报告篇一:实验二I-o口输入、输出实验报告单片机实验报告2姓名学号时间地点实验题目I/o口输入、输出实验一、实验目的1.学习I/o口的使用方法。
2.学习延时子程序、查表程序的编写和使用。
二、实验仪器和设备pc机、wAVe软件、仿真器+仿真头、实验板、电源等。
三、实验说明本实验1通过单片机的I/o口控制LeD的亮灭,从而观察I/o口的输出。
实验2通过单片机的I/o口接受按键动作信息,然后通过LeD和数码管指示。
通过本实验学生可以掌握单片机I/o口输入输出的控制方法,同时也可以掌握单片机延时子程序、查表程序的编写和调试方法。
要求预先编写好程序并通过伟福仿真软件调试。
四、实验内容1、p0口做输出口,接八只LeD,编写程序,使LeD循环点亮,间隔0.5秒。
2、p1.0--p1.7作输入口接拨动开关s0--s7;p0.0--p0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,同时将开关编号(0—7)显示在LeD数码管上。
编程时应注意p1作为输入口时应先置1,才能正确读入值。
五、实验电路连线p0.0----LeD0p1.0-----s0p0.1----LeD1p1.1-----s1p 0.2----LeD2p1.2-----s2p0.3----LeD3p1.3------s3p 0.4----LeD4p1.4------s4p0.5----LeD5p1.5------s5 p0.6----LeD6p1.6------s7p0.7----LeD7p1.7------s8 实验1:p0口循环点灯实验2:p1、p0口输入输出agfbabcdefgh(dp)eh(dp)实验2:LeD数码管各段与I/o的连接dcp2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7六、程序框图及程序p0口循环点灯oRg0000hmoVA,#07FhLp:moVp0,ARRALcALLDeLAYLcALLDeLAYsJmpLpDeLAY:moVR2,#0FAhL1:moVR3,#0FAhL2:DJnZR3,L2DJnZR2,L 1ReT;设定程序汇编起始地址;设置初始值01111111;点亮LeD0;将A里面的值循环右移一位;调用延时子程序;循环点亮LeD灯;0.25s的延时程序;2*250=500us;500*250*2=250000us;返回主程序p1口输入/输出oRg0000Loop:moVA,p1cJneA,0FFh,LeDsJmpLoopLeD:moVp0, AAcALLDeLAYmoVR5,#00hLoop1:RRcAJncLoop2IncR5sJmpLoo p1Loop2:moVDpTR,#TAbmoVA,R5;设定起始地址;读p1口;查询是否有按键按下;等待;有键按下,将值读入p0;调用延时子程序;置计数初值=0;输入右移1位;若cy=0,则数码显示;cy=1,则计数加1;跳回继续移位;所查表的首地址赋给DpTR;计数值做偏移量moVp1,#0FFh;p1口置1moVcA,@A+DpTRmoVp2,A;显示相应按键值sJmpLoopTAb:Db60h,0DAh,0F2h,66h;Db0b6h,0beh,0e0h,0Feh;DeLAY:moVR2,#0FAhL1:moVR3,#0FAhL2:DJnZR3,L2DJnZR2,L1ReT;0.25s的延时程序;2*250=500us;500*250*2=250000us;返回主程序七、思考题1、实验1欲改变LeD循环的方向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学
实验报告
课程名称: Java
实验序号:上机实践9 实验名称:统计英文单词&读取Zip文件
班级:计算机3 姓名:卢志敏
同组人:实验日期: 2008 年 12 月 29 日
教师签字:
一、实验目的
掌握RandomAccessFile类的使用。
掌握ZipInputStream流的使用。
二、实验环境
WinXp SP 3
三、实验要求
实验1
使用RandomAccessFile流统计一篇英文中的单词,要求如下:
(1)一共出现了多少个英文单词。
(2)有多少个互不相同的单词。
(3)给出每个单词出现的频率,并将这些单词按频率大小顺序显示在一个Text--Area中。
实验2
读取,并将中含有的文件重新存放到当前目录中的book文件夹中,即将的内容解压到book文件夹中。
四、实验步骤和内容
实验1
源代码:
import .*;
import class WordStatistic
{ Vector allWords,noSameWord;
WordStatistic()
{ allWords=new Vector();
noSameWord=new Vector();
}
public void wordStatistic(File file)
{try { RandomAccessFile inOne=new RandomAccessFile(file,"rw");;
import 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");
(this);
add(openFile,;
add(showMessage,;
openFileDialog=new FileDialog(this,"打开文件对话框",;
allWord=new Vector();
noSameWord=new Vector();
setSize(350,300);
setVisible(true);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ (0);
}
});
validate();
}
public void actionPerformed(ActionEvent e)
{ ();
();
(null);
(true);
String fileName=();
if(fileName!=null)
{ (new File(fileName));
allWord=();
noSameWord=();
("\n"+fileName+"中有"+()+"个英文单词"); ("\n其中有"+()+"个互不相同的英文单词"); ("\n按使用频率排列: \n");
int count[]=new int[()];
for(int i=0;i<();i++)
{ String s1=(String)(i);
for(int j=0;j<();j++)
{ String s2=(String)(j);
if(s2))
count[i]++;
}
}
for(int m=0;m<();m++)
{ for(int n=m+1;n<();n++)
{ if(count[n]>count[m])
{ String temp=(String)(m);
((String)(n),m);
(temp,n);
int t=count[m];
count[m]=count[n];
count[n]=t;
}
}
}
for(int m=0;m<();m++)
{
("\n"+(String)(m)+":"+count[m]+"/"+()+"="+*count[m])/());
}
}
}
}
public class StatisticMainClass
{ public static void main(String args[])
{ new StatisticFrame();
}
}
实验2
源代码
import .*;
import class ReadZipFile
{
public static void main(String [] args)
{ File f = new File("");
File dir = new File("Book");
byte b[] = new byte[100];
();
try{ ZipInputStream in = new ZipInputStream(new FileInputStream(f));
ZipEntry zipEntry =null;
while((zipEntry=())!=null)
{
File file = new File(dir,());
FileOutputStream out = new FileOutputStream(file);
int n=-1;
"的内容");
while((n=(b,0,100))!=-1)
{ String str= new String(b,0,n);
(b,0,n);
}
();
}
();
}
catch(IOException ee)
{
}
}
}
运行效果截屏:
五、实验后的练习
在StatisticFrame的showMessage中增加单词按字典序排序输出的信息。
解答:
在中加入如下代码:
Vector sortWord=new Vecor(noSameWord);
("\n按字典排序: \n");
for(int i=0;i<();i++)
{
if((int)(String)(i).charAt(0)>(int)(String)(i+1).charAt(0)) //比较相邻两个单词首字母在字母表中的大小顺序
{ tempStr=(String)(i);
(i)=(i+1);
(i+1)=tempStr;
} //如果前面的大于后面的则对调
}
for(int k=0;k<();k++)
("\n"+(String)(k));
六、心得体会
1.RandomAccessFile类中的seek(long a)方法用来移动流的读写位置,getFilePointer()方法可以获取当前流的读写位置。
2.Vector()对象可以使用add(Object o)方法把对象自动添加到向量末尾。
3. ZipInputStream流必须指向一个字节流的子类的实例。
4.使用ZipInputStream流之前要先使用getNextEntry()方法找到压缩文件中的下一个内容,然后开始读取。