快捷方式标签请点击大纲
1.读取文件夹下的子文件...(已知几层路径和递归调用)
2.得到当前日期
3.定时器
4.java查询本机ip
1.读取文件下的子文件
(已经知道有几层子文件的情况下)
第一种:
package io1;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class newSZ3 {
/**得到路径下的所有子文件夹*/
public static ArrayList<String> findFile(String filePath){
//得到路径下的所有子文件夹
ArrayList<String> files11=new ArrayList<String>();
File[] files1=new File(filePath).listFiles();
if(files1.length>0){
for(int i=0;i<files1.length;i++){
//子文件夹的名字放进集合
files11.add(files1[i].getName());
}
}else{
files11=null;
}
return files11;
}
/**读取文件*/
public static void input(String fileUrl) throws IOException{
//产生输入流对象
InputStream is=new FileInputStream(fileUrl);
//为了处理文件中的汉字
InputStreamReader isr=new InputStreamReader(is);
//处理文件中的格式
BufferedReader br=new BufferedReader(isr);
String item =null;
while((item= br.readLine())!=null){
item=item.replace('\n', ' ');
String[] itemAll=item.split("\\|", -1);
if(itemAll[3].length()>0&&itemAll[10].equals("2")){//去除第一行
System.out.println( " 符合要求的有->银行代码:"+itemAll[0]+"状态:"+itemAll[10]);
}
}
br.close();
System.out.println(" ");
}
public static void main(String[] args) throws IOException {
String filePath = "E:/temp/post";//根文件路径
//建立一个路径集合
ArrayList<String> files= findFile(filePath);
ArrayList<String> files2=null;
if(files!=null){
System.out.println(filePath+"下所有子文件:");
int i=1;
for (String ss : files) {
//filePath=filePath+"/"+ss;
System.out.println("第"+i+"个子文件:"+ss);
i++;
//再调用一次查找文件
files2= findFile(filePath+"/"+ss);
if(files2!=null){
System.out.println(" 该文件下的所有子文件:");
for (String ss2 : files2) {
System.out.println(" "+ss2);
//查找符合条件的
input(filePath+"/"+ss+"/"+ss2);
}
}else{
System.out.println(" 该二级文件夹为空");
}
}
}else{
System.out.println(" 一级文件夹为空");
}
}
}
第二种:
package io1;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class newSZ2 {
public static void input(String fileUrl,String s1,String s2, int a1,int a2) throws IOException{
//产生输入流对象
InputStream is=new FileInputStream(fileUrl);
//为了处理文件中的汉字
InputStreamReader isr=new InputStreamReader(is);
//处理文件中的格式
BufferedReader br=new BufferedReader(isr);
String item =null;
while((item= br.readLine())!=null){
item=item.replace('\n', ' ');
String[] itemAll=item.split("\\|", -1);
if(itemAll[3].length()>0&&itemAll[10].equals("2")){//去除第一行
if(a2>1){
System.out.println(" 符合要求的第"+a2+"个文件:"+s2);
}else{
System.out.println("第"+a1+"个子文件"+":"+s1+"下\n 符合要求的第"+a2+"个文件:"+s2);
}
System.out.println( " ->银行代码:"+itemAll[0]+"状态:"+itemAll[10]);
}
}
br.close();
System.out.println(" ");
}
public static void findFile(String filePath) throws IOException{
//第一次调用,获取下一级文件所有文件
File[] files = new File(filePath).listFiles();
//最终路径
String fileurl="";
//若果有子文件继续读取
if(files.length>0){
for(int i=0;i<files.length;i++){
//一级子文件路径
String ff=filePath+"/"+files[i].getName();
int i1=i+1;
//组织代码文件包含的文件
File[] orangId = new File(ff).listFiles();
if(orangId.length>0){
int flen=orangId.length;
for(int j=0;j<flen;j++){
int i2=j+1;
fileurl=ff+"/"+orangId[j].getName();
//调用方法来读取 传递参数 String s1,s2,int a1
input(fileurl,files[i].getName(),orangId[j].getName(),i1,i2);
}
}
}
}
}
public static void main(String[] args) throws IOException {
String filePath = "E:/temp/post";//根文件路径
findFile(filePath);
}
}
如果不知道有几层的话,采用递归调用的方法来测试
package io1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
public class newSZ {
/**读取文件 */
public static void input(String fileUrl) throws IOException{
//产生输入流对象
InputStream is=new FileInputStream(fileUrl);
//为了处理文件中的汉字
InputStreamReader isr=new InputStreamReader(is);
//处理文件中的格式
BufferedReader br=new BufferedReader(isr);
String item =null;
while((item= br.readLine())!=null){
item=item.replace('\n', ' ');
String[] itemAll=item.split("\\|", -1);
if(itemAll[3].length()>0&&itemAll[10].equals("2")){//去除第一行
System.out.println( " 符合要求的有->银行代码:"+itemAll[0]+"状态:"+itemAll[10]);
}
}
br.close();
System.out.println(" ");
}
/**递归调用*/
public static void findFile2(File ff) throws IOException{
//把路径下的子文件列出来
File[] files=ff.listFiles();
if(files.length>0){
System.out.println(ff.getName()+"文件下的子文件:");
//遍历数组的每一个File对象
int i=1;
for (File f : files) {
if(f.isDirectory()){
//System.out.println(f.getName()+"文件下的子文件:");
findFile2(f);
}else{
System.out.println("\t第"+i+"个子文件:"+f.getName());
input(f.getPath());
i++;
}
}
}else{
System.out.println(ff.getName()+"文件下为空!!!");
}
}
public static void main(String[] args) throws IOException {
String filePath = "E:/temp";//根文件路径
File genFile=new File(filePath);
findFile2(genFile);
}
}