if(fl[i].isFile()){
flname=fl[i].getPath()+fl[i].getName()+"\n"+flname;//输出返回的对象数组中文件的名称。
count++;
}else{
this.getFileName(fl[i]);//通过递归,把返回的对象数组中属于目录的对象传递给this.getFileName(Filef);
}
}
}
}
publicintgetCount(){
returncount;
}
publicvoidsetCount(intcount){
this.count=count;
}
}
publicclassFileTest{
publicstaticvoidmain(String[]args)throwsError{
Filef=newFile("f:
\\FTP");
System.out.println("isDirectory:
"+f.isDirectory());
FindFileff=newFindFile();
ff.getFileName(f);
System.out.println("共查询到"+ff.getCount()+"个文件");
System.out.println(ff.getFlname());
}
}
第二题:
编写一个程序,用于从键盘读入信息,并存储到磁盘文件中去。
要求:
1、以行的方式读入姓名和学号信息,例如:
张三20071215(姓名和学号中间用一个空格隔开)
2、循环读入,直到用户输入“quit”或者“QUIT”结束
3、程序提示要用户输入一个文件名,例如:
请输入存储到的文件名:
userlist.txt
4、在整个上述过程中,要做例外处理;如果文件创建成功,则给出提示信息。
publicclasstest1
{
publicstaticvoidmain(String[]args)
{
T1();
}
publicstaticvoidT1()
{
FileWriterout;
BufferedWriterbw;
StringfileName=null;
Stringmessage=null;
Scannerscanner=newScanner(System.in);
System.out.print("请输入存储到的文件名:
");
fileName=scanner.next();
try
{
out=newFileWriter(fileName);
bw=newBufferedWriter(out);
System.out.print("\n文件创建成功!
\n请输入姓名和学号信息:
");
while(!
(message=scanner.next()).equalsIgnoreCase("quit"))
{
bw.write(message);
bw.newLine();
}
bw.close();
out.close();
}
catch(Exceptione)
{
System.out.println("文件创建失败!
");
}
}}
第三题:
编写一个程序,用于从第二题存储的磁盘文件中读出信息,并显示在屏幕上。
要求:
1、文件名从键盘输入;
2、姓名和学号分开显示,例如屏幕显示如下信息:
文件userlist.txt中存储的姓名有:
张三李四王五……
文件userlist.txt中存储的学号有:
200612152006131720061425…..
importjava.util.Scanner;
importjava.io.*;
publicclasstest2
{
publicstaticvoidmain(String[]args)
{
T2();
}
publicstaticvoidT2()
{
FileReaderread;
BufferedReaderin;
Scannerscanner=newScanner(System.in);
StringfileName=null;
Stringmessage=null;
String[]buf=newString[2];
String[]name=newString[10];
String[]number=newString[10];
intpos1=0;
intpos2=0;
System.out.print("请输入要读取的文件名:
");
fileName=scanner.next();
try
{
read=newFileReader(fileName);
in=newBufferedReader(read);
while((message=in.readLine())!
=null)
{
buf=message.split("");
name[pos1++]=buf[0];
number[pos2++]=buf[1];
buf=newString[2];
}
}
catch(Exceptione)
{
System.out.println("该文件不存在!
");
}
System.out.println("屏幕显示如下信息:
");
System.out.print("文件"+fileName+"中存储的姓名有:
");
for(inti=0;name[i]!
=null;i++)
{
System.out.print(name[i]+"");
}
System.out.print("\n文件"+fileName+"中存储的学号有:
");
for(inti=0;number[i]!
=null;i++)
{
System.out.print(number[i]+"");
}
}}
第四题:
编写程序,列出当前目录下所有后缀为.txt和.doc的文件。
importjava.io.File;
importjava.util.ArrayList;
importjava.util.List;
publicclassfile{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Jiaoguf=newJiaogu();
Listll=f.getFiles(newFile("d:
\\testfiledir"),"txt"||"doc");
for(Fileff:
ll){
System.out.println(ff.getPath());
}
}
publicListgetFiles(FilefileDir,StringfileType){
Listlfile=newArrayList();
File[]fs=fileDir.listFiles();
for(Filef:
fs){
if(f.isFile()){
if(fileType
.equals(f.getName().substring(
f.getName().lastIndexOf(".")+1,
f.getName().length())))
lfile.add(f);
}else{
Listftemps=getFiles(f,fileType);
lfile.addAll(ftemps);
}
}
returnlfile;
}
}
第五题:
编写程序,实现文件拷贝功能:
即按照用户输入的文件名实现把第一个文件的内容拷贝到第二个文件中。
importjava.io.*;
publicclassCopy{
publicstaticvoidmain(Stringargs[]){
if(args.length!
=2){
System.out.println("参数不正确,无法完成复制!
正确用法:
");
System.out.println("javaCopy源文件名目的文件名");
System.exit(0);
}
copyFile(args[0],args[1]);
}
publicstaticvoidcopyFile(Stringsrc,Stringobj){
FileInputStreamfis=null;
FileOutputStreamfos=null;
try{
fis=newFileInputStream(src);
fos=newFileOutputStream(obj);
}catch(FileNotFoundExceptione){
System.out.println("文件不存在,请检查您的输入:
");
}catch(IOExceptione){
e.printStackTrace();
}
try{
intb;
while((b=fis.read())!
=-1){
fos.write(b);
}
fos.flush();
System.out.println("文件复制成功!
");
}catch(IOExceptione){
System.out.println("文件写入错误!
");
}
}
}
第六题:
编写应用程序,可以把从键盘输入的字符串读到数组中,并在屏幕上逆序输出。
(要求用流的方式实现)。
importjava.util.*;
publicclasslaji1{
publicstaticvoidmain(String[]args){
intn=100;
Scannerscanner=newScanner(System.in);
System.out.print("请输入字符串:
");
Stringyy=scanner.nextLine();
StringTokenizerfenxi1=newStringTokenizer(yy,"");
Stringstr[]=newString[n];
for(inti=0;fenxi1.hasMoreTokens();i++){
str[i]=fenxi1.nextToken();
}
for(inti=n-1;i>=0;i--){
if(str[i]!
=null)
System.out.print(str[i]+"");
}
}
}
Scannerscanner=newScanner(System.in);
System.out.print("请输入字符串:
");
Stringyy=scanner.nextLine();
StringTokenizerfenxi1=newStringTokenizer(yy);
intn=fenxi1.countTokens();
Stringstr[]=newString[n];
for(inti=0;fenxi1.hasMoreTokens();i++){
str[i]=fenxi1.nextToken();
}
for(inti=n-1;i>=0;i--){
System.out.print(str[i]+"");
}
第七题
编写应用程序,利用DataOutputStream和DataInputStream实现将Java中基本数据类型写入到一个文件和按照java基本数据类型读入到程序并打印到屏幕的功能。
publicclassTestClass
{
publicstaticvoidmain(String[]args)throwsException
{
TestClasst=newTestClass();
t.write();
t.read();
}
publicvoidwrite()throwsException
{
Stringpath=this.getClass().getClassLoader().getResource("test.txt").toURI().getPath();
OutputStreamos=newFileOutputStream(path);
DataOutputStreamdos=newDataOutputStream(os);
dos.writeDouble(Math.random());
dos.writeBoolean(true);
dos.writeInt(1000);
dos.writeInt(2000);
dos.flush();
os.close();
dos.close();
}
publicvoidread()throwsException
{
InputStreaminstream=this.getClass().getClassLoader().getResourceAsStream("test.txt");
DataInputStreamdis=newDataInputStream(instream);
doubled=dis.readDouble();
booleanb=dis.readBoolean();
//先写的先被读出来
inti1=dis.readInt();
inti2=dis.readInt();
instream.close();
dis.close();
System.out.println(d);
System.out.println(b);
System.out.println(i1);
System.out.println(i2);
}
}
第八题
编写应用程序,创建一个RandomAccessFile类的对象,实现将Java中基本数据类型写入到文件和按照java基本数据类型读入到程序并打印到屏幕的功能。
publicclassTestClass
{
publicstaticvoidmain(String[]args)throwsException
{
RandomAccessFileraf=null;
StringfileDirAndName="e:
/files/demo.txt";//文件目录及名称
Filefile=newFile(fileDirAndName);//创建欲操作的文件对象,此文件不存在则进行创建
raf=newRandomAccessFile(file,"rw");//创建随机访问读写rw的文件流
intnum=65535;
raf.writeInt(num);//写入一个int类型数据
raf.close();//关闭流
RandomAccessFileraf2=null;
StringfileDirAndName2="e:
/files/demo.txt";//文件目录及名称
Filefile2=newFile(fileDirAndName2);//创建欲操作的文件对象
raf2=newRandomAccessFile(file,"r");//创建随机访问输入r文件流
intresult=raf2.readInt();//从文件中读取一个int类型数据
System.out.println("这个int类型数据是:
"+result);
raf2.close();
}
}
第九题
编写程序:
1、实现将从键盘输入字符串按照Ascii码输入到一个文本文件中的功能;
2、从1中所生成文本文件中读入Ascii编码的数据读入到程序并转化成字符串然后输出到屏幕上。
importjava.io.*;
publicclassFileWrite{
publicstaticvoidmain(Stringargs[]){
BufferedReaderbr=null;
BufferedWriterbw=null;
BufferedReaderbr1=null;
try{
br=newBufferedReader(newInputStreamReader(System.in));//字符输入流从键盘读取数据
bw=newBufferedWriter(newFileWriter("D:
/temp/title.txt"));//字符输出流写数据到文件
br1=newBufferedReader(newFileReader("D:
/temp/title.txt"));//字符输入流从文件读取数据
str=(byte)String.charAt(int);
str=br.readLine();