跳到正文

【java工具类】java文件读写操作工具类

主要是利用java中的输入输出流实现了文件读出和写入的操作,只需要传入文件路径,即可读出文件内容,同时也可以直接向文件中写入数据内容。java文件读写工具类相关代码如下: package com.tank.javatest; import java.io.*; //文件读写测试 public class FileReadAndWriteTest { // 向文件中写入数据 private static FileWriter fileWriter = null; private static BufferedWriter bufferedWriter = null; // 从文件中读取数据 private static FileReader fileReader = null; private static BufferedReader bufferedReader = null; // 写数据 private static FileInputStream fis = null; // 读数据 private static FileOutputStream fos = null; private static double sumL = 0; public static void main(String args) { // TODO Auto-generated method stub System.out.println("二进制方式读写数据测试开始………………………………"); // 开始写数据 WriteToFile(); // 开始读数据 ReadFromFile(); System.out.println("二进制方式读写数据测试结束………………………………"); // 普通方式读写数据测试 System.out.println("普通方式读写数据测试开始………………………………"); // 开始写数据 // 磁盘拷贝文件测试 try { File file = new File("c:\\a.sql"); FileInputStream fileInputStream = new FileInputStream(file); WriteToFileTwo(fileInputStream, file.length()); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 开始读数据 ReadFromFileTwo(); System.out.println("普通方式读写数据测试结束………………………………"); } // 二进制方式 写数据 public static void WriteToFile() { try { // 创建文件对象 fileWriter = new FileWriter("d://reaAndWrite.log"); bufferedWriter = new BufferedWriter(fileWriter); // 直接存取String类型数据 String con = "WWW.XIUXIUBA"; bufferedWriter.write(con + "\r\n"); System.out.println(con); /* * FileWrite的Write(int)方法 无法写入纯int文件的 * 因为这里的int实际上是char字符,当你的int数据在unicode码表里找不到对应的char值时就会出现乱码的。 * 你可以提供一个toString方法转成字符串 想写入真正的int数据 * * File file = new File("b.txt"); FileWriter fw = new * FileWriter(file); fw.write((Integer.toString(87))); */ // 保存当前或者的敌人坦克的坐标 // 我自己创建一个数组, 然后把数据写进去 for (int i = 0; i < 10; i++) { con = i + ""; bufferedWriter.write(con + "\r\n"); } // 如果在这里直接写入int数据 for (int i = 10; i < 20; i++) { bufferedWriter.write(i); // error bufferedWriter.write("\r\n"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { // 后开启的先关闭 try { // 关闭文件流 bufferedWriter.close(); fileWriter.close(); System.out.println("reaAndWrite.log have been saved to disc:d://reaAndWrite.log"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } // 二进制方式读数据 public static void ReadFromFile() { try { // 创建文件对象 fileReader = new FileReader("d://reaAndWrite.log"); bufferedReader = new BufferedReader(fileReader); // 读一行数据 String str = bufferedReader.readLine(); while ((str = bufferedReader.readLine()) != null) { System.out.println(str); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { // 后开启的先关闭 try { // 关闭文件流 bufferedWriter.close(); fileWriter.close(); System.out.println("TankGame.log have been saved to disc:d://Demo11_1//Game.cfg"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } // 普通方式写数据(保存数据) public static void WriteToFileTwo(FileInputStream fis, long len) { try { // 1.把文件加载到内存 // fis = new FileInputStream("d://Demo11_1//test.zip"); fos = new FileOutputStream("d://reaAndWrite.sql"); //System.out.println("文件长度为: "+len); // 2.读文件(缓存) byte buf = new byte; int n = 0;// 实际读取字节数 // 循环读取数据 把数据读到缓存区域 try { while ((n = fis.read(buf)) != -1) { //System.out.println("Copy file …… …… ……"); // 把缓冲区的数据输出到指定文件(从buf缓存区中写数据到 输出流文件中去) System.out.println(fis.read(buf)); //1024 fos.write(buf); //System.out.println("Copy file …… …… ……"+n+"%"); sumL += n; System.out.println(n+" "+sumL+" "+len); System.out.println("已传输:" + ((sumL / len) * 100)*1.94 + "%"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { // 关闭 打开的文件流 fis.close(); fos.close(); System.out.println("Copy file finished!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("文件拷贝完成!!!"); } } // 普通方式读数据 public static void ReadFromFileTwo() { try { int len = 0; byte buf = new byte; fis = new FileInputStream("d://reaAndWrite.log"); try { while ((len = fis.read(buf)) != -1) { System.out.println(new String(buf, 0, len)); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 以上就是java中文件读写工具类的封装,小编只是对此工具类进行了简单的封装,如果读者想实现更复杂的封装,请自行进行二次封装!

评论

填写昵称与邮箱即可评论,无需登录。

推荐阅读