获取文件制定行内容



package com.file.run;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

package com.file.run;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;


public class ForFile {
 // 生成文件路径
 private static String path = "C:\\Users\\zhengmingyuan\\Desktop\\.00d3ec41dd6ef6ca56f7643e024bee25";

 // 文件路径+名称
 private static String filenameTemp;

 //创建文件
 public static void main(String[] args) throws IOException {
  ForFile forFile = new ForFile();
  // String filecontent="copy /b *.ts new1.ts";
  // String fileName="111";
  // ForFile file=new ForFile();
  // file.createFile(fileName,filecontent);
  // for(int i=0;i<new ForFile().getpath().size();i++){
  // System.out.println(new ForFile().getpath().get(i));
  // }
  for(int i=0;i<forFile.readbyLine().size();i++){
   System.out.println(forFile.readbyLine().get(i));
  }
 }

 public static boolean createFile(String fileName, String filecontent) {
  Boolean bool = false;
  filenameTemp = path + fileName + ".bat";// 文件路径+名称+文件类型
  File file = new File(filenameTemp);
  try {
   // 如果文件不存在,则创建新的文件
   if (!file.exists()) {
    file.createNewFile();
    bool = true;
    System.out.println("success create file,the file is "
      + filenameTemp);
    // 创建文件成功后,写入内容到文件里
    writeFileContent(filenameTemp, filecontent);
   }
  } catch (Exception e) {
   e.printStackTrace();
  }

  return bool;
 }

 //向文件中写入内容
 
 public static boolean writeFileContent(String filepath, String newstr)
   throws IOException {
  Boolean bool = false;
  String filein = newstr + "\r\n";// 新写入的行,换行
  String temp = "";

  FileInputStream fis = null;
  InputStreamReader isr = null;
  BufferedReader br = null;
  FileOutputStream fos = null;
  PrintWriter pw = null;
  try {
   File file = new File(filepath);// 文件路径(包括文件名称)
   // 将文件读入输入流
   fis = new FileInputStream(file);
   isr = new InputStreamReader(fis);
   br = new BufferedReader(isr);
   StringBuffer buffer = new StringBuffer();

   // 文件原有内容
   for (int i = 0; (temp = br.readLine()) != null; i++) {
    buffer.append(temp);
    // 行与行之间的分隔符 相当于“\n”
    buffer = buffer.append(System.getProperty("line.separator"));
   }
   buffer.append(filein);

   fos = new FileOutputStream(file);
   pw = new PrintWriter(fos);
   pw.write(buffer.toString().toCharArray());
   pw.flush();
   bool = true;
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  } finally {
   // 不要忘记关闭
   if (pw != null) {
    pw.close();
   }
   if (fos != null) {
    fos.close();
   }
   if (br != null) {
    br.close();
   }
   if (isr != null) {
    isr.close();
   }
   if (fis != null) {
    fis.close();
   }
  }
  return bool;
 }

 //删除文件

 public static boolean delFile(String fileName) {
  Boolean bool = false;
  filenameTemp = path + fileName + ".txt";
  File file = new File(filenameTemp);
  try {
   if (file.exists()) {
    file.delete();
    bool = true;
   }
  } catch (Exception e) {
   // TODO: handle exception
  }
  return bool;
 }
//获取文件路径+名字
 public List getfile() {
  File file = new File("D:\\娱乐\\英雄联盟\\新建文件夹\\qq");
  File[] fileList = file.listFiles();// 将该目录下的所有文件放置在一个File类型的数组中
  List<File> wjList = new ArrayList<File>();// 新建一个文件集合
  for (int i = 0; i < fileList.length; i++) {
   if (fileList[i].isFile()) {// 判断是否为文件
    wjList.add(fileList[i]);
   }
  }
  return wjList;
 }
//获取文件路径
 public List getpath() {
  File file = new File("D:\\娱乐\\英雄联盟\\新建文件夹\\qq");
  File[] fileList = file.listFiles();// 将该目录下的所有文件放置在一个File类型的数组中
  List<File> wjList = new ArrayList<File>();// 新建一个文件集合
  for (int i = 0; i < fileList.length; i++) {
   if (fileList[i].isDirectory()) {// 判断是否为文件
    wjList.add(fileList[i]);
   }
  }
  return wjList;
 }
//读取制定行,因为读的文件较多,所以用list接收了
 public List readbyLine() throws IOException {
  List<String> list = new ArrayList<String>();
  int lineNumber = 5;
  String s = null;
  ForFile forFile = new ForFile();
  List filelist = forFile.getfile();
  for (int i = 0; i < filelist.size(); i++) {
   File sourceFile = (File) filelist.get(i);

   FileReader in = new FileReader(sourceFile);
   LineNumberReader reader = new LineNumberReader(in);
   s = reader.readLine();
   {
    for (int i1 = 0; i1 < 3; i1++) {//循环几次就是获取的第几行的内容,比较笨的方法,有好可以留言
     s = reader.readLine();
    }
   }
   reader.close();
   in.close();
   list.add(s);
  }
  return list;
 }

}

         }
   return s;
    } 

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
}

猜你喜欢

转载自blog.csdn.net/m0_37681654/article/details/80357804