#1
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
try {
File f=new File(in.next());
if(!f.exists()){
System.out.println("没文件");
return;//退出这一方法。
}
if(!f.isDirectory()){
System.out.println("该路径不是文件");
return;
}
File[] fs=f.listFiles(); //拿出文件夹李所有的文件
System.out.println(Arrays.toString(fs));
} catch (Exception e) {
// TODO: handle exception
}
}
#2
public class IO_text2 {
//深度优先遍历 递归(自身调用自身 例如15行)
static int num; //记录一共有多少文件
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
File f=new File(in.next());
if(f.exists()&&f.isDirectory()){
IO_text2 sm=new IO_text2();
sm.saomiao(f);
}
System.out.println(num);
}
public void saomiao(File f){
int count=0;
File[] fs=null;
if(f.isDirectory())fs=f.listFiles();
if(fs==null) return;//如果扫描的文件夹为空,退出
for (File file : fs) {
if(file.isDirectory())saomiao(file);
else System.out.println(file.getName());
num++;
count++;
}
System.out.println(f+"文件夹下有"+count+"个文件");
}
}
#3
public class IO_text1_copy {
//字节型的复制
public static void main(String[] args) {
// TODO Auto-generated method stub
File f1=getFile(); //获得一个安全要复制的文件
File f2=getFilePath(f1.getName()); //通过刚输入的文件名,得到文件名,再去输入的路径下,验证有没有重名文件
try {
FileInputStream instream=new FileInputStream(f1);
FileOutputStream outstream=new FileOutputStream(f2);
int num=0;
byte[] bs=new byte[1024];//1024缓冲区
while(true){
num=instream.read(bs);//读取1024个数据。 不一定能读满,num变量记录着成功读取多少数据。
if(num==-1) break; //后续没有数据就返回-1.退出循环
outstream.write(Arrays.copyOf(bs, num)); //arras.copyof(复制谁,复制多少) 返回值是输出的结果
}
instream.close(); //关闭这两个数据刘。
outstream.close();
} catch (Exception e) {
// TODO: handle exception
}
}
/**
*
* @return 返回一个安全有效的文件。
*/
private static File getFile(){
Scanner in=new Scanner(System.in);
File f=null;
while(true){
System.out.println("请输入要copy的文件");
String sh=in.next();
f=new File(sh); //
if(f.exists()&&f.isFile())break;
}
return f;
}
/**
*
* @param name 不包含想要赋复制的文件名
* @return 返回一个安全有效的文件
*/
private static File getFilePath(String name){
Scanner in=new Scanner(System.in);
File f=null;
File f2=null;
while(true){
System.out.println("要copy到哪里");
String qu=in.next();
f=new File(qu);
if(f.exists()&&f.isDirectory()){
f2=new File(f,name); //?
if(!f2.exists())break;
}
}
return f2;
}
}
#4
public class IO_text3_chawenjian {
static LinkedList<File> list=new LinkedList<File>();
public static void main(String[] args) {
// TODO Auto-generated method stub
// 广度优先遍历 迭代(调用处不断调用方法解决问题)
Scanner in=new Scanner(System.in);
System.out.println("lujinhg ");
File file=new File(in.next());
if(file.exists()&&file.isDirectory()){
list.add(file);
while(!list.isEmpty()){
saom();
}
}
}
public static void saom(){
File f=list.pop();
File[] fs=null;
if(f.isDirectory()) return;
for (File file : fs) {
if(file.isFile())System.out.println(f.getName());
else list.add(file);
}
}
}