JAVA实验报告五

JAVA实验报告五

1.利用BufferedReader、BufferedWriter等流类的相关方法,编程实现如下功能:
(1)把字符串“C”、“C++”、“Java”分三行写入文本文件A.txt;
(2)从A.txt中读出字符串,分行输出;
(3)编写main方法,测试上述代码的功能。
2.利用文件流的相关操作,编程实现如下功能:
(1)输出C:\Windows\System32\drivers\etc目录下的文件数目;
(2)统计并输出每个文件拥有文本的行数;
(3)编写main方法,测试上述代码的功能。

算法设计思想与算法实现步骤
1、新建Example5_1类,类中建立main函数,函数体中分别创建三个方法question1_1();question1_2();question2();
2、在question1_1中,首先定义三个字符串数组,将题目中的值赋给各数组,先创建一个文件A.txt,然后用FileOutputStream输出流对A.txt文件写入题目要我们写入的内容,并关闭流,若成功,则输出success,失败则输出error;
3、在question1_2中,先创建File类对象file,然后用FileReader通过向BufferReader传递一个Reader子类的对象来创建一个BufferReader对象,定义字符串S为空,然后inTwo流调用readLine()方法读取A.txt,并且进行分行输出,关闭inOne和inTwo流;若失败则输出error。
4、在question2中,定义int型count,字符串filester并各自赋值,创建File类对象file,创建File类数组str用来存放file调用listFile()返回的文件对象,然后对str中的每个对象调用isFile()方法判断是否是文本文件,并计数输出;
在外层使用for循环对每个文本文件遍历行数,在内层创建FileReader类的对象和BufferReader类的对象,并设置行数n,分别读每个文本文件计算行数。并输出文件总数,以及每个文件的路径及行数。

package 实验报告5;
import java.io.*;
public class Example5_1 {
	public static void main(String[] args) {
		question1_1();
		question1_2();
		question2();
	}
    private static void question1_1() {
		byte[] a="C\r\n".getBytes(),b="C++\r\n".getBytes(),c="Java".getBytes();
		try {
			FileOutputStream out=new FileOutputStream("F:\\JAVA\\实验报告\\实验报告5\\A.txt");
			out.write(a);
			out.write(b);
			out.write(c);
			System.out.println("success");
            out.close();
		}
		catch(Exception e) {
			System.out.println("error");
		}
	}
    private static void question1_2() {
		File file=new File("F:\\JAVA\\实验报告\\实验报告5\\A.txt");
		try {
			FileReader inOne=new FileReader(file);
			BufferedReader inTwo=new BufferedReader(inOne);
			String s=null;
			int h=1;
			while((s=inTwo.readLine())!=null) {
				System.out.print(s);
				if(h<3) {
					System.out.println("");
				}
				h++;
			}
			System.out.println("");
			inOne.close();
			inTwo.close();
		}
		catch(IOException e) {
			System.out.println("error");
		}
	}
    private static void question2() {
		try {
			int count=0;
			String filestr="C:\\Windows\\System32\\drivers\\etc";
			File file=new File(filestr);
			File[] listfile=file.listFiles();
			for(int i=0;i<listfile.length;i++) {
				if(!listfile[i].isDirectory()) {
					String temp=listfile[i].toString().substring(7,listfile[i].toString().length()) ; 
					System.out.println("temp=》"+temp);
					System.out.println("文件"+count+"——path="+listfile[i]);
					int n=0;
					FileReader inOne=new FileReader(listfile[i]);
					BufferedReader inTwo=new BufferedReader(inOne);
					while(inTwo.readLine()!=null) {
						n++;
					}
					count++;
					int m=i+1;
					System.out.println("*******************************************");
					System.out.println("文件"+m+":文本行数:"+n+"行");
					inOne.close();					
					inTwo.close();
				}
			}
			System.out.println("共有"+count+"个文件");
		}
		catch(IOException e) {
			System.out.println("Error");
		}	
	}	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值