实验11 输入输出流(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验11输入输出流
一、实验目的
(1)掌握Java I/O基本原理。
(2)掌握标准输入/输出流和Scanner类的基本使用方法。
(3)掌握FileInputStream、FileOutputStream抽象类的基本使用方法。
二、实验任务
(1)阅读给定的Java Application程序,按要求回答问题并写出运行结果。
(2)按要求编写一个Java Application程序,并编译、运行这个程序。
三、实验内容
1、从标准输入读取数据
import java.io.*;
import java.util.*;
public class StdInput {
public static void main(String[] args) throws Exception {
1:System.out.println("input:");
2:byte b[]=new byte[512];
3:int count=System.in.read(b);
4:System.out.println("count=:"+count);
5:System.out.println("output:");
6:for(int i=0;i 7:{System.out.print(b[i]+" ");} } } (1)分析程序代码,写出运行结果。 (2)将编号为6:和7:的两行改成一行语句System.out.println(b);输出的结果如何?分析为什么? (3)如果将编号为2:的那一行代码改成double b[]=new double[512];那么修改其他的地方,完成正确输入和输出double类型的数组元素,请写出修改后的完整的运行代码和结果。 import java.io.*; import java.util.*; public class StdInput { public static void main(String[] args) throws Exception { System.out.println("input:"); double b[]=new double[512]; Scanner sin=new Scanner(System.in); //int count=System.in.read(); //System.out.println("count=:"+count); System.out.println("output:"); for(int i=0;i {b[i]=sin.nextDouble(); System.out.print(b[i]+" "); } } } 2、编写程序实现如下操作过程:先在指定的当前目录下创建名“temp”的子目录,在“temp”目录下创建两个文件“temp1.txt”和“temp2.txt”,然后列表显示temp 目录下的所有文件;接下来再重命名“temp1.txt”为“temp3.txt”,删除文件“temp2.txt”,再在temp目录下创建tp子目录,在“tp”目录下创建两个文件“temp4.txt”和“temp5.txt”,然后再次显示temp目录下的所有文件。 import java.io.*; public class FileDirectory { public static void main(String[] args) throws Exception{ File currentPath=new File("."); File tempPath=new File(currentPath,"temp"); tempPath.mkdir(); File temp1=new File(tempPath,"temp1.txt"); temp1.createNewFile(); File temp2=new File(tempPath,"temp2.txt"); temp2.createNewFile();【代码1】//创建文件temp2.txt System.out.println("第一次的目录文件:"); listsubdir(tempPath); File newf=new File(tempPath,"temp3.txt"); temp1.renameTo(newf); temp2.delete();【代码2】//删除temp2.txt文件 File tempPath1=new File(tempPath,"tp"); tempPath1.mkdir();【代码3】//创建子目录tp File temp4=new File(tempPath1,"temp4.txt"); temp4.createNewFile();【代码4】//创建文件temp4.txt File temp5=new File(tempPath1,"temp5.txt"); temp5.createNewFile(); System.out.println("更改后的目录文件:"); listsubdir(tempPath); } //递归显示指定目录的内容方法 static void listsubdir(File currentPath)throws Exception {String filenames[]=currentPath.list(); for(int i=0;i { File f=new File(currentPath,filenames[i]); if(f.isDirectory())【代码5】//判断f是否是目录 {System.out.println("仍然是一个目录,进行递归调用 "+f.getAbsolutePath()); listsubdir(f);} else System.out.println(f.getName());