版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 湖北工业大学工程技术学院实验报告课程名称: java 实验内容: 实验五 输入输出多线程网络 学院: 工 程 技 术 学 院 专业班级: 11gb软件2班 教师: 程学先 成绩: 一、实验目的:1、了解对文件、文件夹属性的读、写方法。2、掌握字节流与字符流的概念及读、写方法。3、掌握文件读写(顺序与随机)、复制、压缩的程序设计方法。4、了解图片导入的方法。5、掌握线程的概念,了解多线程的程序用途与程序设计方法。6、掌握applet小程序设计方法。7、了解图形设计程序设计方法。二、执行下述程序,说明各程序功能。如果题后有问题,按问题进行设计并总结。将每题运行结果复制粘贴到一个word文件中。每
2、题注意写明题号(从1到3)。1、获取某文件夹下某文件的文件名称、父路径、长度、最后修改时间、是否可读、是否可写等信息。该文件可在自己的机器上任意一个文件夹中任意选一个。import java.io.file;public class filedemo public static void main(string args) file file = new file(d:/h1/echo.txt);/根据文件全名创建文件对象,文件名称请自己选定后修改,不修改者或不存在着无分 if (file.exists() / 判断该文件是否存在 string name = file.getname(); /
3、 获取文件名称 string parent = file.getparent(); / 获取文件父路径 long leng = file.length(); / 获取文件长度 boolean bool = file.canwrite(); / 判断该文件是否可改写 system.out.println(文件名称为: + name); / 输出信息 system.out.println(文件目录为: + parent); system.out.println(文件大小为: + leng + bytes); system.out.println(最后修改时间 +file.lastmodified(
4、); system.out.println(是否可读+file.canread(); system.out.println(是否为可改写文件: + bool); 2、获取某盘、某文件夹下全部文件名称。该文件夹可在自己的机器上任意一个盘中选一个。对文件目录运行前与运行后抓屏并将抓屏图像贴到word文件中。import java.io.file;public class filedemo2 public static void main(string args) file dir = new file(e:/text); /根据文件路径创建文件对象,,文件夹名称请自己选定后修改,不修改者或不存在着
5、无分 if (dir.isdirectory() / 如果该文件对象指定的是一个目录 file files = dir.listfiles(); / 获取该目录下的抽象路径名数组 for (int i = 0; i 0) f0.write(s); /如果不是空行则写 f.close( ); f0.close( ); catch (ioexception e) system.err.println(发生异常: + e); 8、复制文件夹,对文件目录运行前与运行后抓屏并将抓屏图像贴到word文件中。import java.io.file;import java.io.fileinputstream
6、;import java.io.fileoutputstream;import java.io.ioexception;public class directoryscopydemo public static void main(string args) throws ioexception int count = 0; /注意下面的文件夹名自拟 file sources = new file(d:/h1);/ 源文件夹 file targets = new file(d:/h2);/ 目标文件夹 if (!targets.exists() / 如果目标文件夹不存在 targets.mkdi
7、r();/ 创建文件夹 file source = sources.listfiles();/ 获得源文件夹中所有文件 fileinputstream fis = null; fileoutputstream fos = null; for (file file : source) fis = new fileinputstream(file);/ 创建输出流 file target = new file(targets.getabsolutepath() + file.separator + file.getname(); if (!target.exists() target.create
8、newfile();/ 创建新文件 fos = new fileoutputstream(target); byte bytes = new byte1024;/ 创建字节数组 int length; while (length = fis.read(bytes) != -1) fos.write(bytes, 0, length);/ 将源文件内容写入新文件 system.out.println(file.getname() + 复制完毕!); count+; system.out.println(一个复制了+count+个文件!); 9、压缩文件夹生成zip文件。对d盘目录运行前与运行后抓
9、屏并将抓屏图像贴到word文件中。import java.io.file;import java.io.fileinputstream;import java.io.fileoutputstream;import java.io.ioexception;import java.util.zip.zipentry;import java.util.zip.zipoutputstream;public class directoryzipdemo public static void main(string args) throws ioexception file sources = new f
10、ile(d:/a1); /注意文件夹名自拟 file target = new file(d:/a1.zip); file source = sources.listfiles(); fileinputstream fis = null; fileoutputstream fos = null; zipoutputstream zos = null; zipentry entry = null; byte buffer = new byte1024;/ 创建写入压缩文件的数组 fos = new fileoutputstream(target); zos = new zipoutputstre
11、am(fos); for (file file : source) entry = new zipentry(file.getname(); fis = new fileinputstream(file); zos.putnextentry(entry); int read = 0; while (read = fis.read(buffer) != -1) zos.write(buffer, 0, read);/ 将输入写入到压缩文件 zos.closeentry();/ 关闭zipentry fis.close();/ 释放资源 zos.close(); fos.close(); 10、将
12、a1中多个.txt文件合并写到一个文件中。在d盘建文件夹a1,在其中存放三个java文件,再运行本程序。对文件目录运行前与运行后抓屏并将抓屏图像贴到word文件中。import java.io.bufferedinputstream;import java.io.file;import java.io.filefilter;import java.io.fileinputstream;import java.io.filenotfoundexception;import java.io.fileoutputstream;import java.io.ioexception;public cla
13、ss fileconcatenation24 public static void main(string args) file rootfile = new file(d:/a1);/ 获得要合并java文件的文件夹 file files = rootfile.listfiles(new filefilter() / 获取文件夹中所有txt文件 override public boolean accept(file pathname) if (pathname.getname().endswith(.java) /要合并的文件的文件类型 return true; else return fa
14、lse; ); file concatedfile = new file(d:/a1/a11.txt);/ 声明合成后的文件 fileinputstream fis = null; fileoutputstream fos = null; bufferedinputstream bis = null; try fos = new fileoutputstream(concatedfile);/ 创建文件输出流对象 for (file file : files) / 遍历所有要合成的文件 fis = new fileinputstream(file);/ 创建文件输入流 bis = new bu
15、fferedinputstream(fis);/ 利用文件输入流创建缓冲输入流 int length = 0; while (length = bis.read() != -1) fos.write(length);/ 将输入流写入新文件 catch (filenotfoundexception e) e.printstacktrace(); catch (ioexception e) e.printstacktrace(); finally if (bis != null) try bis.close();/ 关闭缓冲输入流 catch (ioexception e) e.printstac
16、ktrace(); if (fis != null) try fis.close();/ 关闭文件输入流 catch (ioexception e) e.printstacktrace(); if (fos != null) try fos.close();/ 关闭文件输出流 catch (ioexception e) e.printstacktrace(); 11、木马、病毒等常常需要监视键盘操作,例如通过监听登录过程中的用户名与密码,记录下来,达到盗取账号的目的。本程序未实现监听,只是将用户登录时输入到文本框中的内容(包括用户名、密码、登录时间)记录到文件中。本程序采用了顺序存取文件与随机
17、文件二种保存方式,后者可以添加新内容到文件尾部,可以保存历史数据。前者只能保存最后一次登录的数据。请多次运行登录程序,之后,比较存放在d:a1中的aaa1和aaa2二个文本文件中的内容。学习与比较二种文件存取数据的特点与方法。package com.lw;import java.awt.*;import java.awt.event.*;import java.util.date;import java.io.*;import javax.swing.*;import javax.swing.border.*;public class keyboardlistener extends jfra
18、me private static final long serialversionuid = 7158985419563418289l; private jpanel contentpane; private jtextfield textfield; private jpasswordfield passwordfield; public static void main(string args) try uimanager.setlookandfeel(com.sun.java.swing.plaf.nimbus.nimbuslookandfeel); catch (throwable
19、e) e.printstacktrace(); eventqueue.invokelater(new runnable() public void run() try keyboardlistener frame = new keyboardlistener(); frame.setvisible(true); catch (exception e) e.printstacktrace(); ); public keyboardlistener() settitle(键盘监听); setdefaultcloseoperation(jframe.exit_on_close); setbounds
20、(100, 100, 250, 160); contentpane = new jpanel(); contentpane.setborder(new emptyborder(5, 5, 5, 5); setcontentpane(contentpane); contentpane.setlayout(new gridlayout(3, 1, 5, 5); jpanel panel1 = new jpanel(); contentpane.add(panel1); jlabel label1 = new jlabel(用户名); panel1.add(label1); textfield =
21、new jtextfield(); panel1.add(textfield); textfield.setcolumns(10); jpanel panel2 = new jpanel(); contentpane.add(panel2); jlabel label2 = new jlabel(密码); panel2.add(label2); passwordfield = new jpasswordfield(); passwordfield.setcolumns(10); panel2.add(passwordfield); jpanel panel3 = new jpanel(); c
22、ontentpane.add(panel3); jbutton button = new jbutton(登录); button.addactionlistener(new actionlistener() public void actionperformed(actionevent e) do_button_actionperformed(e); ); panel3.add(button); protected void do_button_actionperformed(actionevent e) string username = textfield.gettext();/ 获得用户
23、名 string password = new string(passwordfield.getpassword();/ 获得密码 if (username.isempty() | (password.isempty() / 判断用户名或密码是否为空 joptionpane.showmessagedialog(this, 用户名或密码为空!, null, joptionpane.warning_message); return; file file = new file(d:/a1/aaa1.txt);/ 创建文件保存账号信息 date date = new date(); / 创建日期对象
24、string content = 用户名: + username + 登录时间: + date ;/ 获得要写入的字符串 string content1 = username + +password+ + date ;/ 获得要写入的字符串 fileoutputstream fos = null; try fos = new fileoutputstream(file);/ 创建文件输出流对象 fos.write(content.getbytes();/ 将字符串写入到文件中 string filename=d:/a1/aaa2.txt;/以下创建随机文件,用添加方式加入信息 randomac
25、cessfile randomfile = new randomaccessfile(filename, rw); / 文件长度,字节数 long filelength = randomfile.length(); /将写文件指针移到文件尾。 randomfile.seek(filelength); randomfile.writebytes(content1); randomfile.close(); catch (filenotfoundexception e1) e1.printstacktrace(); catch (ioexception e1) e1.printstacktrace
26、(); finally try fos.close();/ 关闭文件输出流 catch (ioexception e1) e1.printstacktrace(); 思考:本程序中输出内容中如果有中文,用第二种方式存入文件时将会是乱码,你能否分析一下是什么原因,有没有解决办法?12、将图片导入到image组件import javax.swing.*;import java.awt.*;public class a1 extends jframeprivate image image;public a1()super(mydisplay);image=toolkit.getdefaulttool
27、kit().getimage(d:/h1/p2/src/a018.jpg);/图片换成你自己的this.setsize(800,600);public void paint(graphics g)g.drawimage(image,0,0,800,600,this);/画图片,这里的paint方法系统自动调用,并且还传递进来了graphics对象,省的再自己用getgraphics方法了。public static void main(string args)new a1().setvisible(true);13_1、反复执行以下借助实现runnable接口实现的多线程程序,记录每次执行时各线程先后执行顺序。记录三次执行各自执行顺序。说明自己的体会。public class twothreadpublic static void main(string args) threadsale t=new threadsale(); /实例化线程 system.out.println(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环境成本核算与经济评估行业市场突围建议及需求分析报告
- 《 基于物质文化遗产保护下的景观设计研究》范文
- 《 区块链驱动对供应链绩效的影响研究》范文
- 2025届四川省蓬安二中高三下学期第六次检测物理试卷含解析
- 广东省东莞市北京师范大学石竹附属中学2025届高考物理全真模拟密押卷含解析
- 2025届江苏省启东市启东中学高三第三次模拟考试物理试卷含解析
- 2025届福建省长汀一中等六校高三冲刺模拟物理试卷含解析
- 陕西省韩城市司马迁中学2025届高三下学期联合考试物理试题含解析
- 安徽省淮南市重点中学2025届高三最后一模物理试题含解析
- 2025届广东省揭阳市高三(最后冲刺)物理试卷含解析
- 2020年中考数学方程(组)与不等式(组)测试题含答案
- 行为习惯的养成教育
- 成都市结构优质工程评审办法
- ttester eng112k翻译晶体管测试仪带AVR微控制器和
- 人教版高中英语Book 6 Unit 2 Grammar 虚拟语气教学课件
- 七年级语文上册课件:第一单元综合复习(共26张PPT)
- 高一【美术(人美版)】纪念与象征-空间中的实体艺术-课件00
- 浅谈如何培养农村小学生的语文素养(定稿202)
- 第1节 声音的产生与传播 课件 人教版物理八年级上册
- 费用报销管理制度
- 【小学美术】一下《21. 蒸花馍》课件
评论
0/150
提交评论