package com.whn.practice;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Scanner;
public class Test7 {
private static FileOutputStream fos;
private static File numberFile=null; //一个numFile用来接受递归中返回的参数
public static void main(String[] args) throws Exception {
File file = new File("D:\\test");
isHave(file); //递归方法去掉返回值
if (numberFile==null) { //用numFile来做判断
System.out.println("没有这个文件,创建number.txt");
File file2 = new File("D:\\test\\number.txt");
file2.createNewFile();
fos = new FileOutputStream("D:\\test\\number.txt",true); //字符串输出路径
}else{
System.out.println("文件存在 "+numberFile.getAbsolutePath());
fos = new FileOutputStream(new File(numberFile.getAbsolutePath()),true);//如果文件存在,就往这个文件存
}
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("请输入字符串");
String nextLine = sc.nextLine();
fos.write((nextLine+" ").getBytes());
}
fos.close();
System.out.println("输入完毕");
}
/**
* 判断是否存在
*/
private static void isHave(File file) {
File[] files = file.listFiles();
for (File subFile : files) {
if (subFile.isDirectory()) {
isHave(subFile);
}else{
if("number.txt".equals(subFile.getName())){
numberFile = subFile; //如果存在这个number.txt文件,就附给numFile
}
}
}
}
}
//呀,我的锅,递归中的return只返回了一层递归,没有反出去,修改部分我加注释了 |