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语言实验指导《Java程序设计》课程实验指导书实验一熟悉Java编程环境和Java程序结构一、实验目的:通过简单的输入输出程序熟悉Java编程环境,认识Java程序结构。
二、实验内容:在JDK或者V isual J++环境下编写简单的输入输出程序。
三、实验要求:1. 接收一个键盘输入的字符;2. 输出一条简单的问候信息;3. 写出实验报告,要求对程序结构做出详细的解释。
四、实验学时:2学时五、实验步骤:1.进入Java编程环境;2. 新建一个Java文件,命名为inOut.java;3. 定义主方法static public void main(String[ ] args);在方法体中调用System.in.read方法接收一个键盘输入的字符;调用System.out.println()方法,使程序输出一条问候信息;4. 编译运行程序,观察运行情况和输出结果。
(如果使用JDK环境,调用javac.exe和java.exe编译和执行程序)六、选作实验编写Java Applet程序实现上述功能。
实验二 Java语言基础训练一、实验目的:熟悉Java基本语法,练习使用Java的数据类型和控制结构,实现简单的数据和字符串操作。
二、实验内容:编写Java程序,输出1900年到2000年之间的所有润年。
三、实验要求:1. 正确使用Java语言的控制结构;2. 从屏幕输出1900年到2000年之间的所有润年;3. 写出实验报告。
四、实验学时:2学时五、实验步骤:1.进入Java编程环境;2. 新建一个Java文件,命名为runY ear.java;3. 定义主方法,查找1900到2000年之间的润年,并输出它们;4. 编译运行程序,观察输出结果是否正确。
六、选作实验编写程序,查找一个字符串中是否包含指定的字符。
实验三面向对象基础熟悉Java类的结构,掌握类的定义、方法和属性的定义以及对象的实现,掌握类的继承。
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 输入输出流实验
}
catch(Exception exp){}
clip.start();
voiceWord.setEnabled(true);
}
}6.实验指导
(1)BufferedReader对象调用readLine方法可读取文件中的一行内容。
catch(IOException exp){}
}
}
public void run()
{
voiceWord.setEnabled(false);
try{
if(clip!=null)
{
clip.close();
}
clip=AudioSystem.getClip();
File voiceFile=new File(showWord.getText().trim()+".wav");
add(pCenter,BorderLayout.CENTER);
menubar=new JMenuBar();
menu=new JMenu("帮助");
help=new JMenuIter("关于学单词");
help.addActionListener(this);
menu.add(help);
menubar.add(menu);
FileReader类是Reader的子类,该类创建的对象称为文件字符输入流。文件字符输入流按字符读取文件中的数据。FileReader流按顺序读取文件,只要不关闭流,每次调用读取方法时FileReader流就会依次读取文件中其余的内容,直到文件的末尾或流被关闭。
java输入输出语句例子
java输入输出语句例子Java语言中的输入输出语句是开发者经常使用的重要命令之一。
在本文中,我们将通过几个例子来展示Java中如何使用输入输出语句。
1. 导入Java中的I/O库在使用Java中的输入输出语句之前,我们需要先导入Java中的I/O库。
通过这个库,我们可以轻松地从键盘读取输入、从文件中读取输入和将输出写入文件。
在Java中,我们通常使用java.io包中的类来处理输入输出任务。
为了导入这个包,我们只需要在Java程序的开头添加以下代码:```import java.io.*```2. 使用Java中的输入输出语句一旦我们导入了Java中的I/O库,我们就可以开始使用Java中的输入输出语句了。
以下是几个例子:- 读取键盘输入并将其打印出来```import java.io.*public class InputOutputExample{public static void main(String args[]) throws IOException{BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));System.out.println("Enter your name: ");String name = inp.readLine();System.out.println("Hi " + name + ", nice to meet you!"); }}```在这个例子中,我们创建了一个BufferedReader对象,并使用它来读取来自键盘的输入。
我们使用System.in作为我们的输入源,并使用InputStreamReader将它们从字节流转换为字符流。
最后,我们使用BufferedReader的readLine()方法来读取用户输入。
java实验指导书
实验一java开发环境及语言基础实验目的(1)确保正确配置java开发环境。
(2)了解javac和java命令的使用。
(3)熟悉java中的运算符。
(4)掌握条件语句和循环语句的使用。
(5)掌握通过命令行参数接受数据。
(6)掌握用Scanner类接受数据。
实验内容(1)在控制台中输入java命令,查看输入结果。
(2)编写一个java程序,计算半径为3.0的圆周长和面积并输出结果。
(3)求a+aa+aaa+...+a...a(n个)的和,其中a为1~9之间的整数。
例如,当a=3、n=4时,求3+33+333+3333的和。
(4)给定一个正整数m,统计其位数,分别打印每一位数字,再按照逆序打印出各位数字。
(5)用Scanner类方法输入三角形三边求三角形面积。
实验要求(1)JDK的安装及配置。
(2)在DOS及eclipse下编辑、编译运行第一个java程序:hello world。
(3)求圆周长和面积用方法实现,主函数调用。
(4)从命令行输入1~9之间的整数a,当所求的和大与106时,输出相应的a值及所求的和值。
(5)用Scanner类的方法输入正整数m,m的值不应该超过99999,否则给出错误信息。
应引入包:import java.util.Scanner,然后在需要的方法中实例化对象:Scanner sc = new Scanner(System.in),最后调用对象的next方法,如int n=nextInt(),接受整数。
实验二数组实验目的(1)掌握数组的定义和使用方法。
(2)熟悉数组的排序、查找的方法。
(3)巩固循环的使用。
实验内容(1)使用for循环,将二维数组的行与列互换,即完成矩阵的转置。
(2)编写数组的排序程序。
(3)编写杨辉三角。
实验要求(1)编写一个界面1 选择排序2 冒泡排序3插入排序4 快速排序5 退出当选择1、2、3、4、5的时候完成相应的功能。
(2)杨辉三角形状为等腰三角形实验三字符串实验目的(1)掌握正则表达式的使用。
基于Java文件输入输出流实现文件上传下载功能
基于Java⽂件输⼊输出流实现⽂件上传下载功能本⽂为⼤家分享了Java实现⽂件上传下载功能的具体代码,供⼤家参考,具体内容如下前端通过form表单的enctype属性,将数据传递⽅式修改为⼆进制”流“的形式,服务端(servlet)通过 getInputStream() 获取流信息,运⽤java I/O 流的基础操作将流写⼊到⼀个服务端临时创建的⽂件temp中,然后再次利⽤⽂件基本操作,读取并截取临时⽂件内容,根据其中信息创建相应的⽂件,将读取出来的具体信息写⼊,下载时,根据提交的⽂件名称,找到服务器端相应的⽂件,然后根据输出流outStream输出到页⾯,同时将servlet的响应类型和响应头进⾏设置。
具体传输流程如下图:流信息的部分为:具体代码如下:前端代码:<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title><script src="Js/jquery.js"></script></head><body><form action="FileUpServlet" method="post" enctype="multipart/form-data"><table><tr><td>请选择上传⽂件:</td><td><input id="myfile" name="myfile" type="file" value="" /></td><td><input type="submit" value="上传"></td></tr><tr><td>${info}</td></tr></table></form>⽂件下载:<a href="FileLoadownServlet?filename=${filename}">${filename}</a></body></html>上传servlet部分(核⼼)@WebServlet("/FileUpServlet")public class FileUpServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public FileUpServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubdoPost(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubrequest.setCharacterEncoding("utf-8");InputStream filesource = request.getInputStream();//request获取流信息String tempname = "D:/temp";//tempfile代表临时存放⽂件File tempfile = new File(tempname);//创建临时⽂件FileOutputStream outputStream = new FileOutputStream(tempfile);//输出流对象,指定输出指tempfile⽬录下byte b[] = new byte[1024];int n;while((n = filesource.read(b))!= -1)//从输出流中每次读取1024字节,直⾄读完{outputStream.write(b,0,n);}outputStream.close();filesource.close();//关闭输⼊输出流/*以下为具体的⽂件操作,主要为解析临时产⽣的 temp⽂件,知识多为java输⼊输出流的内容!*/RandomAccessFile randomfile = new RandomAccessFile(tempfile, "r");//随机流,指定要读临时⽂件,只读randomfile.readLine();//读取第⼀⾏,⽆效数据,不需要String str = randomfile.readLine();//读取第⼆⾏int beginIndex = stIndexOf("=")+2;//指定所需数据的开始位置int endIndex = stIndexOf("\"");//指定所需数据截⾄位置String filename = str.substring(beginIndex,endIndex);//截取⽂件名//重新定位⽂件指针,获取⽂件内容randomfile.seek(0);//⽂件指针从头开始long startext = 0;int i = 1;//⽂件内容开始位置while((n=randomfile.readByte()) != -1&&i <= 4){if(n=='\n'){startext = randomfile.getFilePointer();i++;}}startext = randomfile.getFilePointer() - 1;//获取⽂件内容结束位置randomfile.seek(randomfile.length());long endtext = randomfile.getFilePointer();int j = 1;while(endtext >= 0 && j <= 2){endtext--;randomfile.seek(endtext);if(randomfile.readByte()=='\n'){j++;}}endtext = endtext-1;//将临时⽂件保存⾄指定⽬录中String realpath = getServletContext().getRealPath("/")+"images";//设置⽂件保存⽬录System.out.println(realpath);File fileupload = new File(realpath);if(!fileupload.exists()){fileupload.mkdir();//⽬录不存在则创建}File savefile = new File(realpath,filename);RandomAccessFile randomAccessFile = new RandomAccessFile(savefile, "rw");randomfile.seek(startext);while(startext<endtext){randomAccessFile.write(randomfile.readByte());//⽂件写⼊startext = randomfile.getFilePointer();}//关闭各种输⼊输出流randomAccessFile.close();randomfile.close();tempfile.delete();//删除临时⽂件SimpleDateFormat timed = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date nowdate = new Date();String time = timed.format(nowdate.getTime());request.setAttribute("info", time+" "+filename+"上传成功!");request.setAttribute("filename", filename);request.getRequestDispatcher("/fildeOp.jsp").forward(request, response);}}下载部分protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubString filename = request.getParameter("filename");String path = getServletContext().getRealPath("/")+"images/";File file = new File(path+filename);//找到⽂件if(file.exists())response.setContentType("application/x-msdownload"); //设置响应类型,此处为下载类型response.setHeader("Content-Disposition", "attachment;filename=\""+filename+"\"");//以附件的形式打开 InputStream inputStream = new FileInputStream(file);ServletOutputStream outputStream = response.getOutputStream();byte b[] = new byte[1024];int n;while((n = inputStream.read(b)) != -1){outputStream.write(b,0,n);}outputStream.close();inputStream.close();}else{request.setAttribute("result", "⽂件不存在!下载失败!");request.getRequestDispatcher("/fildeOp.jsp").forward(request, response);}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
java 标准输入输出流
java 标准输入输出流
计算机系统都有标准的输入设备和标准输出设备。
对一般系统而言,标准输入设备通常是键盘,而标准输出设备是屏幕。
Java程序经常需要从键盘上输入数据,从屏幕上输出数据,为此频繁创建输入/输出流对象将很不方便。
因此,Java语言事先定义好了两个对象,分别对系统的标准输入和标准输出相联系,如System.in和System.out,另外还定义了标准的System.err错误输出流。
System.in是标准输入流,是InputStream类的实例。
可以使用read()方法从键盘上读取字节,也可以将它包装成数据流读取各种类型的数据和字符串。
在使用System.in的read()方法时,由于read()方法在定义时抛出了IOException 异常,所以必须使用try-catch结构捕获异常或声明抛出异常;
System.out和System.err是标准输出流和标准错误输出流,是PrintStream类的实例。
如果从标准输入流键盘上输入基本数据类型,可以将标准输入流包装成具有缓
执行上述代码,结果如图12-12所示。
图12-12 System.in 标准输入流。
实验报告 Java输入、输出和异常处理
实验四Java输入、输出和异常处理一、实验目的1.了解I/O流的使用;2.掌握常见的输入/输出流类及其主要方法。
3.熟悉S y s t e m类,掌握标准输入/输出。
4.学会利用Tr y-c a t c h-f i n a l l y语句来捕获和处理异常;5.掌握自定义异常类的方法。
二、实验要求1.使用标准数据流的应用程序。
2.使用文件输入输出流的应用程序。
3.通过编程理解系统异常处理的机制和创建自定义异常的方法。
三、实验内容(一)使用标准数据流的应用程序标准数据流指在字符方式下(如D O S提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
1.程序功能:将键盘上输入的字符在屏幕上显示出来。
2.编写S Y4_1.j a v a程序文件,源代码如下:c l a s s S Y4_1{p u b l i c s t a t i c v o i d m a i n(S t r i n g[]a rg s)t h r o w s j a v a.i o.I O E x c e p t i o n {b y t e b u ff e r[]=n e w b y t e[10];S y s t e m.o u t.p r i n t l n("从键盘输入不超过10个字符,按回车键结束输入:");i n t c o u n t=S y s t e m.i n.r e a d(b u f f e r);//读取输入的字符并存放在缓冲区b u ff e r中S y s t e m.o u t.p r i n t l n("保存在缓冲区b u ff e r中元素的个数为:"+c o u n t);S y s t e m.o u t.p r i n t l n("b u f f e r中各元素的值为:");f o r(i n t i=0;i<c o u n t;i++){S y s t e m.o u t.p r i n t(""+b u ff e r[i]);//在屏幕上显示b u ff e r 元素的值}S y s t e m.o u t.p r i n t l n();S y s t e m.o u t.p r i n t l n("输出b u ff e r字符元素:");S y s t e m.o u t.w r i t e(b u ff e r,0,b u f f e r.l e n g t h);}}3.编译、运行S Y4_1.j a v a文件。
JAVA语言程序设计实验报告
实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。
二、预习内容安装工具软件的基本方法。
三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。
1、打开Eclipse的安装盘安装Eclipse。
2、在相同目录下安装J2SDK。
3、打开Eclipse软件对J2SDK文件进行配置。
4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。
Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。
实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。
应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。
(1)编辑A verage.java。
class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。
(完整版)《JAVA程序设计》实验报告
福建师范大学协和学院本科实验报告课程名称:JA V A程序设计系别:专业:班级:学号:学生姓名:2011年月日实验项目列表《JA V A程序设计》实验相关说明实验要求:1.明确实验课是课程的重要组成部分,与理论课有着同等地位,是培养自身的实验技能与创新能力的重要途径;2.在实验课前,对实验的目的、要求和基本内容,实验的重点和难点,应进行预习与讨论,确定实施措施,并编写好程序;3.了解实验室的规章制度和安全用电常识、实验设备损坏赔偿制度等,加强安全意识,爱惜实验设备;4.实验课期间不得擅自离开实验室或从事与本实验无关的活动,按时按质完成实验作业,培养创造性思维,努力提高自身的实践能力;5.每次实验应提交实验结果,指导老师将结合实验操作过程给予综合评分(对于有创造性的实验成果酌情给予加分),作为期末考试成绩的一部分。
实验须知:1.每次实验完成之后,学生须填写实验报告,并上交。
报告内容包括:实验目的、实验内容、实验步骤、思路分析或流程图、程序源代码、实验中未解决的问题、屏幕出错提示代码、出错原因、解决方法及实验心得等内容。
不交实验报告的学生,本次实验成绩为0分。
2.若有拷贝现象,程序代码雷同的学生实验成绩一律为0分。
3.每次实验任务必须在2-6节课内完成,并经过实验指导老师检查才能得分。
没能按时完成的同学,本次实验成绩为0分。
福建师范大学协和学院《JA V A程序设计》课程实验报告班级:______学号:_________________姓名:_____________成绩:教师签字:实验一简单输入/输出项目设计一、实验目的1、了解Java运行环境的安装与配置。
2、了解程序的基本结构,编辑、编译与运行方法。
3、掌握方法的调用、异常的处理。
二、实验环境(主要仪器设备和软件)1、操作系统Windows XP2、JA V A开发包JSDK1.63、代码编辑器Jcreart3.24、数据库管理系统MySQL5.05、数据库可视化管理平台CapVideo8.06、Web服务器TomCat5.07、JA V A开发工具MyEclipse7.08、微机三、实验内容1、Java开发包的下载与安装;2、环境变量的设置;3、安装配套开发软件;4、熟悉各类软件的使用;5、以下内容至少任选一项完成:选项一:编写一个应用程序绘制一个如下的操作菜单。
JAVA实验报告
JAVA实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解 Java 语言的基本语法、面向对象编程的概念以及常用类库的使用。
同时,培养自己解决实际问题的能力,提高编程的熟练程度和代码质量。
二、实验环境操作系统:Windows 10开发工具:EclipseJDK 版本:18三、实验内容及步骤(一)基本语法练习1、数据类型与变量定义不同类型的变量,如整数型(int)、浮点数型(float、double)、字符型(char)和字符串型(String),并进行赋值和输出操作。
了解不同数据类型的取值范围和精度,以及在实际编程中的应用场景。
2、控制结构编写使用 ifelse 语句、switch 语句进行条件判断的程序。
运用 for 循环、while 循环和 dowhile 循环实现重复执行的操作。
3、数组与字符串声明和初始化一维数组和二维数组,对数组元素进行访问和操作。
进行字符串的拼接、截取、查找等常见操作。
(二)面向对象编程实践1、类与对象定义一个简单的类,包含属性和方法。
创建该类的对象,并调用对象的方法来操作属性。
2、继承与多态建立父类和子类,实现继承关系。
在子类中重写父类的方法,展示多态性。
3、封装与抽象将类的属性设置为私有,并提供公共的访问方法(getter 和 setter),实现封装。
定义抽象类和抽象方法,体会抽象的概念和作用。
(三)常用类库的使用1、 Java 输入输出(IO)使用 Scanner 类实现从控制台读取用户输入的数据。
运用 File 类和相关的输入输出流类,实现文件的读取和写入操作。
2、集合框架熟悉 ArrayList、LinkedList 等线性集合的使用方法。
了解 HashSet、TreeSet 等集合的特点和应用场景。
3、异常处理在程序中加入可能引发异常的代码段,并使用 trycatch 语句捕获和处理异常。
四、实验结果与分析(一)基本语法练习1、数据类型与变量成功定义了各种数据类型的变量,并正确进行了赋值和输出。
java输入输出流实验报告总结】
java输入输出流实验报告总结】Java输入输出流实验报告总结在本次实验中,我们学习了Java的输入输出流的概念和用法。
输入输出流是Java中用于处理输入和输出操作的工具。
通过输入流,我们可以将外部数据输入到程序中进行处理,通过输出流,我们可以将程序中的数据输出到外部文件或设备上。
在本次实验中,我们通过几个具体的示例来探索输入输出流的不同用法和特性,以期更好地理解和掌握它们的使用。
首先,我们学习了如何使用FileInputStream和FileOutputStream这两个类来进行字节流的输入和输出操作。
这两个类分别用于从指定文件中读取字节数据和将字节数据写入到指定文件中。
通过这两个类,我们可以实现文件的拷贝、移动、创建等功能。
同时,我们还了解了如何使用BufferedInputStream和BufferedOutputStream这两个类来提高读写效率。
这两个类可以通过缓存数据来减少对底层系统的IO操作次数,从而提高读写速度。
接下来,我们学习了如何使用FileReader和FileWriter这两个类进行字符流的输入和输出操作。
这两个类与字节流的输入输出类似,但它们处理的是字符数据。
通过这两个类,我们可以读取和写入文本文件中的字符数据。
我们还了解了字符编码和字符集的概念,并学习了如何使用InputStreamReader和OutputStreamWriter来进行字符流和字节流之间的转换。
除了字节流和字符流,我们还学习了对象流的使用。
对象流可以将Java 对象直接写入到文件中,也可以从文件中读取Java对象。
这在处理一些复杂的对象数据时非常有用。
我们通过使用ObjectInputStream和ObjectOutputStream这两个类,实现了对象的读写操作。
需要注意的是,被写入和读取的对象必须实现Serializable接口,否则会抛出NotSerializableException异常。
在实验过程中,我们还探索了如何使用标准输入输出流。
java输入输出实验报告
java输入输出实验报告Java输入输出实验报告引言:Java是一种广泛应用的编程语言,其输入输出(Input/Output,简称I/O)功能对于程序的交互和数据处理至关重要。
本实验旨在通过实际操作,探索Java中的输入输出机制,并深入了解其原理和应用。
一、实验目的通过本次实验,我们的目标是:1. 理解Java中的输入输出概念和基本原理;2. 掌握Java中的标准输入输出流(System.in和System.out)的使用;3. 学会使用Java中的文件输入输出流,实现对文件的读写操作;4. 熟悉Java中的异常处理机制,处理输入输出过程中的异常情况。
二、实验环境本次实验所需的环境和工具如下:1. Java开发工具(如Eclipse、IntelliJ IDEA等);2. 一台配置良好的计算机。
三、实验过程1. 标准输入输出流的使用在Java中,标准输入流(System.in)用于接收用户的输入,标准输出流(System.out)用于向屏幕输出信息。
我们可以通过Scanner类来实现对标准输入流的读取,通过System.out.println()方法实现对标准输出流的输出。
下面是一个示例代码:```javaimport java.util.Scanner;public class StandardIOExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入您的姓名:");String name = scanner.nextLine();System.out.println("您好," + name + "!欢迎使用Java输入输出功能。
"); }}```2. 文件输入输出流的使用除了标准输入输出流,Java还提供了FileInputStream和FileOutputStream类,用于实现对文件的读写操作。
java 实验六 输入输出 实验报告
实验六输入输出实验目标:1. 理解I/O流的概念与机制,掌握其分类;2. 掌握文本文件的读写、二进制文件的读写、处理流类的概念和用法、对象序列化;3. 掌握File类,压缩流类和RandomAccessFile类的使用;4. 遇到I/O方面的问题,能够自行查阅API稳当解决。
实验任务:1、课本198页习题2,并使用这个程序来copy自己硬盘的大文件(任何格式都可以,如电影,最好大于500MB),看看需时多少?提示:首先需要看懂课本文本文件例子,再模仿修改,关键不同在下面三点。
(1)文本文件复制中是每次读一行,而在二进制文件复制中是自行指定读取多少字节的数据,写法如下。
private boolean copyFiles() { //这个私有方法用来拷贝文件,如无异常返回true try {byte[] buf = new byte[512];int num = source.read(buf); //从源文件读取数据while (num > 0) { // 只要能够读取数据,就继续读dest.write(buf, 0, num); //向目标文件写入num = source.read(buf); //从源文件读取数据}}catch (IOException iox) {System.out.println("Problem reading or writing");return false;}return true;}-------------------以上请注意byte[] buf = new byte[512],说明每次只读512字节,请更换每次读取的缓冲字节数,比如byte[] buf = new byte[5120],每次读5mb左右,请试试copy 效率回有所提高吗?请截图回答。
(2)需时多少可以通过CPU时钟计算,方法见下。
Calendar start=Calendar.getInstance();new BinaryFileCopy().copy(args[0], args[1]);Calendar end=Calendar.getInstance();long time=end.getTimeInMillis()-start.getTimeInMillis();System.out.println("copy时间为"+time+"毫秒");(3)因为这个程序执行需要输入参数的,所以在eclipse里面不能直接执行的,要到dos界面去执行,这里命令行的写法就有点讲究了。
javaio流实验总结
javaio流实验总结Java IO流是Java编程中非常重要的一部分,它提供了一种简单而灵活的方式来处理输入和输出。
在本次实验中,我学习了Java IO 流的基本概念、不同类型的IO流以及如何使用它们进行读写操作。
下面是我对实验内容的总结和感悟。
Java IO流是用于处理输入和输出的工具。
它通过提供一种抽象的方式来处理不同来源和目标的数据,如文件、网络连接和内存缓冲区。
在Java中,IO流分为两大类:字节流和字符流。
字节流以字节为单位进行读写,适用于处理二进制数据或字节流;字符流以字符为单位进行读写,适用于处理文本数据。
在实验中,我学习了四种基本的字节流:InputStream、OutputStream、FileInputStream和FileOutputStream。
InputStream用于从源读取数据,OutputStream用于向目标写入数据。
FileInputStream和FileOutputStream则是用于读写文件的特殊字节流。
通过使用这些流,我可以轻松地读取和写入文件中的数据。
除了字节流,我还学习了四种基本的字符流:Reader、Writer、FileReader和FileWriter。
Reader用于从源读取字符数据,Writer 用于向目标写入字符数据。
FileReader和FileWriter则是用于读写文件的特殊字符流。
字符流比字节流更适合处理文本数据,因为它们可以正确处理字符编码和换行符。
在实验中,我还学习了如何使用缓冲流来提高IO性能。
缓冲流是对基本的字节流和字符流的包装,它们使用内部缓冲区来减少对底层数据源的访问次数,从而提高读写的效率。
通过使用BufferedInputStream和BufferedOutputStream,我可以在读写大量数据时获得更好的性能。
类似地,通过使用BufferedReader 和BufferedWriter,我可以更快地读写文本文件。
java实验报告完整版
实验报告(计算机与信息工程学院实验中心)学期:2014-2015课程名称:《Java程序设计实验》班级:信息1202*名:***学号:**********指导老师:***《Java程序设计》独立实验教学安排一、实验的教学方式、安排及实验环境(一)教学方式对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。
实验十二的内容由学生自行设计完成。
(二)教学安排学时数:30课时学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。
(三)实验环境实验环境为JDK 1.6。
(四)具体安排地点:信息大楼实验室。
辅导:每个班次一名辅导老师,原则上由任课老师担任。
登记:实验完成,由辅导老师登记实验纪录。
学生:实验做完,完成实验报告内容,并在学期末上交实验册。
老师:批改实验,成绩与平时成绩一起占期末的30%。
二、实验的具体内容和要求见实验报告。
浙江工商大学计算机与信息工程学院实验报告(1)日期:地点:成绩:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━实验目的、实验原理和内容:一、实验目的:熟悉Java开发环境及简单程序Java设计。
二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。
三、实验内容及要求:1.下载、安装并设置Java SDK 软件包。
2.熟悉Eclipse编辑软件。
3.掌握运行Java 程序的步骤。
4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
程序一public class hello {public static void main(String[] args) {for(int i=0;i<=4;i++){System.out.println("Hello java! 欢迎使用!");}}}结果示意图1存在的问题1、JA VA 存在大小写,因为system没有区分大小写所以出现编译错误。
JAVA实验报告
日期:2018年5月地点:明向校区公共机房6(1)实验题目,实验原理和内容一、实验目的:JAVA结构化程序设计二、实验原理:声明不同数据类型的变量,使用关系运算符和逻辑运算符,使用表达式语句与复合语句,使用选择语句,使用循环语句。
实验内容及要求:1、题目1:编写程序,实现从键盘输入一个0到100之内的整数,把百分制分数到等级分数的转换////>=90 A// 80~89 B// 70~79 C// 60~69 D// <60 E2、成法口诀阵形3、华氏和摄氏的转换法4、.从键盘输入10个数,排序输出。
要求:请同学们把调试好的程序及运行结果、存在的问题写在下面(不够可以附页)。
1、package test1;import java.util.*;public class TEST1 {public static void main(String[] args){System.out.println("请输入一个0到100之间的整数");Scanner scanner=new Scanner(System.in);int x;int m=scanner.nextInt();x=m/10;switch(x){ case 9: System.out.println("A");break;case 8: System.out.println("B");break;case 7: System.out.println("C");break;case 6: System.out.println("D");break;default: System.out.println("E");break;}}}2、package test2;public class TEST2 {public static void main(String[] args){int num;int m;for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){num=i*j;System.out.print(j+"*"+i+"="+num+ "\t");if(i==j)System.out.println(); }}}}3、package test3;import java.util.*;public class TEST3 {public static void main(String[] args){Scanner scanner=new Scanner(System.in);while(true) {System.out.println("请输入要转换的温度类型:c或f");String a=scanner.nextLine();String num1=new String("c");String num2=new String("f");String num3=new String("exit");if(a.equals(num1)){System.out.println("请输入要转换摄氏的温度:..");double C=scanner.nextFloat();System.out.println("对应的华氏温度为:");System.out.println(32+C*1.8+"F");}if(a.equals(num2)){System.out.println("请输入要转换华氏的温度:..");double F=scanner.nextFloat();System.out.println("对应的摄氏温度为:"+"C");System.out.println((F-32)/1.8+"C");}if(a.equals(num3)) break;String bank=scanner.nextLine();}}}4、package test4;import java.util.*;public class Test4 {public static void main(String[] args){Scanner scanner=new Scanner(System.in);int m;int[] a=new int[10];for(int i=0;i<=9;i++)a[i]=scanner.nextInt();int temp;for(int i=0;i<10;i++){ for(int j=i+1;j<10;j++){ if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}for(int x=0;x<=9;x++)System.out.print(a[x]+" ");}}日期:2018年5月地点:明向校区公共机房6(2)实验题目,实验原理和内容一.实验目的:数组、字符串与异常处理二.实验原理:使用数组,使用字符串与字符串类,处理异常。
Java课程第三次实验报告(第17周)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter(fout));
同时明白了不耻下问的道理,有些事在我们看来是百思不得其解的,这时不妨去请教我们身边的老师,或许这些问题是同学们经常犯的,老师可以帮助你从容搞定,自己在其中还会收获别人意想不到的新知识呢。
五、指导教师评语
成绩
批阅人
日期
bw.close();
}
}
2.实验册119页实验17,实验内容的第一题:运行以下代码,体会通过继承Thread类构造线程的特点。将程序运行结果截图。
package sy3;
class SimpleThread extends Thread{
public SimpleThread(String str){
super (str);
}
public void run(){
for (int i=0;i<10;i++){
System.out.println(i+" "+getName());
try{
sleep((int)(Math.random()*1000));
}catch(InterruptedException e){}
实验报告
(2013 / 2014学年第2学期)
课程名称
JAVA语言程序设计
实验名称
标准输入输出流的程序设计、多线程程序设计
输入输出程序设计实验
输入输出程序设计实验
输入输出程序设计实验是一种编程实验,旨在测试和验证程序的输入和输出功能。
以下是输入输出程序设计实验的一些常见任务和要求:
1. 输入验证:确保程序能够正确地读取用户输入的数据,并进行必要的验证,例如检查输入的数据类型、格式和范围是否符合要求。
2. 输出格式化:确保程序能够将结果以适当的格式输出,例如表格、图形或文本。
3. 错误处理:确保程序能够妥善处理错误情况,例如输入数据不正确或异常情况,并给出适当的错误消息。
4. 数据转换:测试程序是否能够将输入数据转换为所需格式或类型,并进行必要的转换处理。
5. 数据排序:测试程序是否能够对输入数据进行排序,例如按照数字大小、字母顺序或时间顺序等。
6. 数据筛选:测试程序是否能够对输入数据进行筛选,例如根据特定条件过滤掉不需要的数据。
7. 数据统计:测试程序是否能够对输入数据进行统计,例如计算平均值、中位数、众数等。
8. 数据可视化:测试程序是否能够将数据以图形或图表的形式呈现,例如柱状图、折线图或饼图等。
在完成输入输出程序设计实验时,需要注意以下几点:
1. 确定实验目的和要求,并制定详细的实验计划和步骤。
2. 选择适当的编程语言和工具,并熟悉相关语法和库函数。
3. 设计合理的输入和输出方案,并进行充分的测试和验证。
4. 记录实验过程和结果,并进行总结和分析。
5. 根据实验结果进行优化和改进,以提高程序的性能和稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JComboBox choice;
JButton getWord,voiceWord;
JLabel showWord;
String trainedWord=null;
Clip clip=null;
Tread voiceThread;
int k=0;
JPanel pCenter;
public StringBuffer getEnglishWord(File file){
StringBuffer englishWord=new StringBuffer();
try{
FileReader inOne=【代码1】//创建指向文件f的inOne的对象
BufferedReader inTwo=【代码2】//创建指向文件inOne的inTwo的对象
import java.awt.event.*;
import java.io.*;
import javax.sound.sampled.*;
import javax.swing.*;
import java.util.regex.*;
public class StudyFrame extends JFrame implements ItemListener,ActionListener,Runnable{
BufferedReader类创建的对象称为缓冲输入流,该输入流的指向必须是一个Reader流,称作BufferedReader流的底层流,底层流负责将数据读入缓冲区,BufferedReader流的源就是这个缓冲区,缓冲输入流再从缓冲区中读取数据。
BufferedWriter类创建的对象称为缓冲输出流,缓冲输出流可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据写入缓冲区,FileWriter流作为BufferedWriter的底层流,负责将数据写入最终目的地。
pNorth.add(choice);
add(pNorth,BorderLayout.NORTH);
JPanel pSouth=new JPanel();
pSouth.add(getWord);
pSouth.add(voiceWord);
add(pNorth,BorderLayout.SOUTH);
}
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的对象
choice.addItemListener(this);
voiceWord.addActionListener(this);
getWord.addActionListener(this);
JPanel pNorth=new JPanel();
pNorth.add(new JLabel("选择一个英文单词组成的文件"));
BufferedReader inTwo=【代码5】//创建指向文件inOne的inTwo的对象
String s=null;
while((s=inTwo.readLine())!=null)
{
textHelp.append(s+"\n");
}
inOne.close();
inTwo.close();
}
pCenter=new JPanel();
mycard=new CardLayout();
pCenter.setLayout(mycard);
textHelp=new JTextArea();
pCenter.add("word",showWord);
pCenter.add("help",textHelp);
public static void main(String args[]){
new StudyFrame();
}
}
模板2:EnglishWord.java
import java.io.*;
import java.util.StringTokenizer;
public class EnglishWord{
setSize(350,220);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
validate();
String regex="\\s*[a-zA-Z]+\\s{0,}";//匹配单词的正则表达式
p=pile(regex,Pattern.MULTILINE);//初始化模式对象
mycard.show(pCenter,"word");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==getWord)
{
boolean boo=m.find();
if(boo)
{
trainedWord=m.group();
showWord.setFont(new Font("宋体",Font.BOLD,24));
showWord.setBackground(Color.green);
getWord=new JButton("下一个单词");
voiceWord=new JButton("发音");
voiceThread=new Thread(this);
showWord.setText(trainedWord);
}
else
{
showWord.setText("训练完毕");
}
}
if(e.getSource()==voiceWord)
{
if(!(voiceThread.isAlive()))
{
voiceThread=new Thread(this);
FileReader类是Reader的子类,该类创建的对象称为文件字符输入流。文件字符输入流按字符读取文件中的数据。FileReader流按顺序读取文件,只要不关闭流,每次调用读取方法时FileReader流就会依次读取文件中其余的内容,直到文件的末尾或流被关闭。
FileWriter类是Writer的子类,该类创建的对象称为文件字符输出流。文件字符输出流按字符将数据写入到文件中。FileWriter流按顺序写入数据,只要不关闭流,每次调用写入方法时FileWriter流就会依次向文件写入内容,直到流被关闭。
CardLayout mycard;
JTextArea textHelp;
JMenuBar menubar;
JMenu menu;
JMenuItem help;
Pattern p;//模式对象
Matcher m;//匹配对象
public StudyFrame()
{
english=new EnglishWord();
(2)BufferedWriter对象调用newLine方法可向文件写入回行。
(3)播放声音可以使用javax.sound.sampled包中的AudioSystem类,该类调用static方法public Clip getClip()可以返回一个Clip对象,AudioSystem类调用static方法getAudioInputStream(File file)可以返回一个指向文件的AudioInputStream音频流对象,Clip对象调用void open(AudioInputStream stream)可以打开参数stream指定的音频流。
FileInputStream是InputStream的子类,该类创建的对象称为文件字节输入流。文件字节输入流按字节读取文件中的数据。FileInputStream流按顺序读取文件,只要不关闭流,每次调用读取方法时就依次读取文件中其余的内容,直到文件的末尾或流被关闭。
FileOutputStream类是OutputStream的子类,该类创建的对象称为文件字节输出流。文件字节输出流按字节将数据写入到文件中。FileOutputStream流按顺序写入数据,只要不关闭流,每次调用写入方法FileOutputStream流就会依次向文件写入内容,直到流被关闭。
clip.open(AudioSystem.getAudioInputStream(voiceFile));
}
catch(Exception exp){}
clip.start();
voiceWord.setEnabled(true);
}
}6.实验指导
(1)BufferedReader对象调用readLine方法可读取文件中的一行内容。
String s=null;
int i=0;
while((【代码3】)!=null)//inTwo读取一行
{
englishWord.append(" "+s+" ");
}ห้องสมุดไป่ตู้
}
catch(Exception e) {}
return englishWord;
}
}模板3:StudyFrame.java