Java语言程序设计 上机实验7 深入理解文件和流的概念
Java语言程序设计 上机实验7
实验目的:
深入理解文件和流的概念,理解流在文件操作中的作用,掌握Java的标准输入/输出方法,掌握Java提供的各种字节流类和字符流类的功能和使用方法。
实验内容:标(*)为选做内容
- 使用文件字节输入/输出流,合并两个指定文件;当文件中的数据已排序时,合并后的数据也要求是已排序的。
提示:先在程序中初始化两个已排序的整型数组,分别写入到两个文件中,然后按照题目要求将两个文件合并。读取并显示合并前后的文件,以验证程序的正确性。
- 将Java的关键字保存在一个文本文件中,程序运行后,提示用户输入一个字符串,判断其是否为Java的关键字。
- (*) 编写一个简易的记事本程序,具有打开文本文件显示、修改文本文件后保存、退出系统等基本功能。
实验要求:
1. 在实验报告中给出程序运行结果截图。
2. 源程序代码附到实验报告的最后。
3. 认真填写实验报告并妥善存档,在下次上机实验课之前发送电子版实验报告至 wsycup@foxmail.com。
注意,“邮件标题”与“附件实验报告文件名”均为:
Java1实验报告N_学号_姓名
其中N为阿拉伯数字,指第几次实验,例如:
Java1实验报告3_ 2012010400_李雷
请严格按照规定的格式发送邮件(注意标题中“Java”后的数字“1”),邮件标题不符合格式要求等同于未交作业,并在规定的时间发送实验报告邮件,过期无效。
4. 实验报告雷同者将不能得到相应的平时分。
附录:实验报告
实验题目__实验7______
学号_2014011329_ 姓名__许恺_____ 班级__计算机14-1_____ 时间_2016.5.13_____
实验题目解答
一.
二.
附:源程序
一.
package com.Test1; import java.io.*; import java.util.Arrays; public class File { /** * @param args */ public static void main(String[] args)throws IOException { // TODO Auto-generated method stub int[] a=new int[10]; int[] b=new int[10]; int[] c=new int[20]; int j=0; int i; for(i=0;i<10;i++) { a[i]=j; b[i]=j+1; j+=2; } String filename1="a.txt"; String filename2="b.txt"; FileOutputStream fout=new FileOutputStream(filename1); FileOutputStream fout0=new FileOutputStream(filename2); for(i=0;i<10;i++) { fout.write(a[i]); fout.write(' '); fout0.write(b[i]); fout0.write(' '); } fout.close(); fout0.close(); FileInputStream fin=new FileInputStream(filename1); FileInputStream fin0=new FileInputStream(filename2); for(i=0;i<10;i++) { a[i]=fin.read(); fin.read(); b[i]=fin0.read(); fin0.read(); } fin.close(); fin0.close(); System.out.println("数组a:"); for(i=0;i<10;i++) { c[i]=a[i]; System.out.print(a[i]+" "); } System.out.println(); System.out.println("数组b:"); for(j=0;j<10;i++,j++) { c[i]=b[j]; System.out.print(b[j]+" "); } System.out.println(); System.out.println("合并后排序前:"); for(i=0;i<20;i++) { System.out.print(c[i]+" "); } System.out.println(); Arrays.sort(c); FileOutputStream fo=new FileOutputStream("c.txt"); for(i=0;i<20;i++) { fo.write(c[i]); fo.write(' '); } fo.close(); FileInputStream fi=new FileInputStream("c.txt"); System.out.println("合并后排序后:"); for(i=0;i<20;i++) { c[i]=fi.read(); fi.read(); System.out.print(c[i]+" "); } fi.close(); System.out.println(); } } 二. package com.Test2; import java.io.*; import java.util.*; public class Keyword { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String key1; boolean b=false; int i; System.out.println("请输入一个java关键字字符串:"); Scanner in = new Scanner(System.in); String key = in.nextLine(); FileReader a=new FileReader("Keyword.txt"); BufferedReader bd=new BufferedReader(a); while((key1=bd.readLine())!=null) { for(i=0;i<key.length();i++) { if(key.charAt(i)!=key1.charAt(i)) break; } if(i==key.length()) { System.out.println("此字符串是关键字"); b=true; break; } } if(b==false) { System.out.println("此字符串不是关键字"); } } }