




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、桂 林 电 子 科 技 大 学Java应用开发 实 验 报 告指导教师意见:教 师签 名成绩实验名称 流与文件 计算机科学与工程学院计算机科学与技术专 业 班 第 实 验 小 组姓 名 学 号 实 验 日 期 2015 年 11 月 24 日实验七 流与文件一、 实验目的1、掌握java中流的概念和作用。 2、掌握文件读写所使用的相关流(类)。二、 实验内容1、编写一个Java程序,能将硬盘上某个文件夹下的一个纯文本文件(如txt文件)拷贝到另一个指定的文件夹中。 2、假设已经有一个文本文件中存放着职工的工资记录。每个职工的记录包含姓名、工资、津贴三项。每条记录可以存放于一行(三项之间的间隔符
2、可以自己决定),也可以将每条记录的三项依次分别存放在文本文件中的每一行。请设计一个程序,可以让用户选择打开这个文件查看其内容,并可以让用户选择把每个职工的工资增加10%之后又存回原来的文件。分析与设计三、 分析与设计FileInputStream in = new FileInputStream("D:1java.txt");/被拷贝的文档FileOutputStream out = new FileOutputStream("D:22.txt");/拷贝文档out.write(buf, 0, b);out.flush();InputStream类 该类
3、是所有字节输入流的根类。方法均throws IOException int read() throws IOException方法的用途是从输入流中读取下一个字节流数据,其返回值是0255之间的一个整数。若读到流结束,返回1,若流中暂时无数据可读,则阻塞。void close()函数可以关闭流并释放系统资源,通常系统对流对象进行垃圾收集时会自动调用此函数。long skip(long n)方法将输入流中当前读取的位置向后移动n字节,并返回实际跳过的字节数。void mark(int readlimit)方法是在输入流的当前读取位置作标记,从该位置开始读取readlimit所指的数据后,所做的标
4、记失效。OutputStream类该类是所有字节输出流的根类。方法均throws IOException,其所具有的部分方法如下: void write(int b)方法为抽象方法,必须被子类实现。该方法用来将指定的字节b作为数据写入输出流。void write(byte b)将字节数组b中长度为b.length个字节的数据写入输出流。void write(byte b,int off,int len)是将字节数组b中从索引off开始的长度为len个字节的数据写入输出流。flush()是清空输出流,并强制输出流中剩余的字节。四、 测试数据及运行结果 被拷贝的文档拷贝文档后的结果未加10%工资前
5、的文档加10%工资后的文档五、 问题与总结java并不在语言层面上对输入输出提供支持,而是将这个任务交由类库的类来完成。Java语言中,输入/输出由两个包组成:java.io包和java.nio包。“流”在java的I/O中起着重要的作用,它是一个逻辑概念,一个字节输入流是指一个字节序列。可从中依次读出字节,用户可以不必关心它的内部结构、来源。字节输出流类似。“流”模型带来的最大好处是:将文件读/写,网络读/写,内存读/写等操作全部统一起来,在“流”的层次上达到操作的一致性。Java.io包中约有60个类,主要分为:字节流的处理、字符流的处理、对象序列化和随机文件处理等。其中所有字节“输入”流
6、类都是抽象类InputStream类的子类,所有字节“输出”流类都是抽象类OutputStream类的子类;所有字符“输入”流类都是抽象类Reader类的子类,所有字符“输出”流类都是抽象类Writer类的子类。六、 附录package sy7;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class s7_1 public static void main(String args) throws IOException FileInputStre
7、am in = new FileInputStream("D:1java.txt");FileOutputStream out = new FileOutputStream("D:22.txt");byte buf = new byte8 * 1024;int b;while (b = in.read(buf, 0, buf.length) != -1) / 写入文件out.write(buf, 0, b);out.flush();in.close();out.close();System.out.println("拷贝成功");pa
8、ckage sy7;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Scanner;import java.util.StringTokenizer;public class s7_2 public static void main(String args) throws IOException
9、String str;int i = 0, j = 0, k = 0, h = 1;String per_string = new String100;String last_string;int salary = new int100;File fl = new File("D:/3.txt");FileReader fr = new FileReader(fl);BufferedReader br = new BufferedReader(fr);System.out.println("读取文件中.");/ 得到文件的内容while (str = b
10、r.readLine() != null)/ 显示信息System.out.println(str);/ 指定用空格符号分割StringTokenizer st = new StringTokenizer(str, " ");/ 将文件进行分割while (st.hasMoreTokens() / 将文件写入到数组中per_stringj = st.nextToken();j+;fr.close();System.out.print("是否将工资加上10%后保存,输入“Y”是,其他退出:");Scanner input = new Scanner(Sys
11、tem.in);if (input.next().equals("Y") / 准备写入文件测试文本.txtFile f2 = new File("D:/测试文本.txt");FileWriter fw = new FileWriter(f2);BufferedWriter bw = new BufferedWriter(fw);/ 得到工资for (i = 0; i < j; i+) / 第二列处是工资if (i != 1) if (h % 3 = 2)salaryk = Integer.parseInt(per_stringi);k+;h+;/
12、将工资增加10%for (i = 0; i < k; i+)salaryi = (int) (salaryi * 0.1 + salaryi);/ 重新赋值h = 1;k = 0;/ 将增加后的工资存入数组中for (i = 0; i < j; i+)if (i != 1)if (h % 3 = 2) / 把第二列处的工资用增加后的工资代替per_stringi = Integer.toString(salaryk);k+;h+;/ 重新赋值h = 1;/ 写入文件中for (i = 0; i < j; i+)last_string = per_stringi;bw.write(last_string, 0, last_string.length();bw.write(&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省芜湖市芜湖县2025-2026学年数学三上期末检测模拟试题含解析
- 知识产权培训课件图片
- 琵琶行教学课件设计
- 专业复习规划中级经济师试题及答案
- 销售量递增策略与实施路径
- 水利水电工程电气系统设计理解及试题及答案
- 贷款担保合同书
- 工程经济试题分析方法试题及答案
- 2025年公共关系学备考策略与试题总结
- 电子商务供应链管理协议
- 《安全生产法解读课件》
- (二模)临沂市2025年高三高考模拟考试英语试题卷(含答案)
- 解除分公司经营合同协议
- 湖南省天壹名校联盟2025届高三5月适应性考试(物理)
- 2025年中考英语考纲词汇(包括词性词义词转短语)
- 老人财产处置协议书范本
- 江西省赣州市2025届高三二模语文试题及参考答案
- 消化内科笔试试题及答案
- 端午节的美食与风味
- 2025年上海长宁区高三二模高考英语试卷试题(含答案详解)
- 圆通快递员劳务合同协议
评论
0/150
提交评论