JAVA 操作文件

来源:互联网 发布:英语听说训练软件 编辑:程序博客网 时间:2024/06/05 16:16
public class demo {public static void main(String[] args) {//boolean result =createFile("D:\\360\\a.txt");//boolean result = createDirectory("D:\\360\\a");//boolean result = deleteFile("D:\\360\\a");//deleteDirectory("D:\\360\\a");}//创建文件public static boolean createFile(String filePath){boolean result = false;File file = new File(filePath);if(!file.exists()){try {result = file.createNewFile();} catch (IOException e) {e.printStackTrace();}}return result;}//创建文件夹public static boolean createDirectory(String directory){boolean result = false;File file = new File(directory);if(!file.exists()){result = file.mkdirs();}return result;}//删除文件public static boolean deleteFile(String filePath){boolean result = false;File file = new File(filePath);if(file.exists()&&file.isFile()){result = file.delete();}return result;}//删除文件夹 递归删除文件夹下面的子文件和文件夹public static void deleteDirectory(String filePath){      File file = new File(filePath);      if(!file.exists()){          return;      }      if(file.isDirectory()){      File[] files = file.listFiles();            for (File myfile : files) {                deleteDirectory(filePath + "\\" + myfile.getName());            }      }    file.delete();} //读文件:1.以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件public static String readFileByBytes(String filePath){      File file = new File(filePath);      if(!file.exists() || !file.isFile()){          return null;      }            StringBuffer content = new StringBuffer();            try {          byte[] temp = new byte[1024];          FileInputStream fileInputStream = new FileInputStream(file);          while(fileInputStream.read(temp) != -1){              content.append(new String(temp));              temp = new byte[1024];          }                    fileInputStream.close();      } catch (FileNotFoundException e) {          e.printStackTrace();      } catch (IOException e) {          e.printStackTrace();      }            return content.toString();  }  //2.以字符为单位读取文件,常用于读文本,数字等类型的文件,支持中文public static String readFileByChars(String filePath){File file = new File(filePath);if(!file.exists() || !file.isFile()){return null;}StringBuffer content = new StringBuffer();char[] temp = new char[1024];FileInputStream fileInputStream;try {fileInputStream = new FileInputStream(file);InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"GBK");while(inputStreamReader.read(temp)!=-1){content.append(new String(temp));temp = new char[1024];}fileInputStream.close();inputStreamReader.close();} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}return content.toString();}//3.以行为单位读取文件,常用于读面向行的格式化文件public static List<String> readFileByLines(String filePath){File file = new File(filePath);if(!file.exists() || !file.isFile()){return null;}List<String> content = new ArrayList<String>();try{FileInputStream fileInputStream = new FileInputStream(file);InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"GBK");BufferedReader reader = new BufferedReader(inputStreamReader);String lineContent = "";while((lineContent=reader.readLine()) !=null){content.add(lineContent);System.out.println(lineContent);}fileInputStream.close();inputStreamReader.close();reader.close();}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}return content;}//6.写文件,字符串写入文件的几个类中,FileWriter效率最高,BufferedOutputStream次之,FileOutputStream最差。//1.通过FileOutStream写入文件public static void writeFileByFileOutputStram(String filePath,String content)throws  IOException{File file = new File(filePath);synchronized (file) {FileOutputStream fos = new FileOutputStream(filePath);fos.write(content.getBytes("GBK"));fos.close();}}//2.通过BufferedOutputStream写入文件public static void writeFileByBufferedOutputStream(String filePath,String content)throws IOException{File file = new File(filePath);synchronized (file) {BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(filePath));fos.write(content.getBytes("GBK"));fos.flush();fos.close();}}//3.通过FileWriter将字符串写入文件public static void writeFileByWriter(String filePath,String content)throws IOException{File file = new File(filePath);synchronized (file) {FileWriter fw = new FileWriter(filePath);fw.write(content);fw.close();}}}

原创粉丝点击