四、JAVA中的IO流,Apache包的使用(eclipse)
Java本身的IO就可以完成许多操作,但是往往要实现的话需要很长的代码,以及各个类的使用。简而言之就是可以实现,但是特别麻烦。
这是我们可以用第三方的包轻松实现,这次要使用的是Apache的io包。
1、首先我们需要到Apache的官网(www.apache.org)上下载Apache的包打开官网找到 Project
或者直接下拉到底部
找到Commons
单击打开找到左侧的 Components——>IO
单击左侧的Download 就可以下载相关的源码(Source)和可执行文件(Binaries)
这里要注意的一点是不同的版本对jdk版本是有要求的!分别是:
Commons IO 2.4 (requires JDK 1.6+)
Commons IO 2.2 (requires JDK 1.5+)
Older Releases
我这里下载的是commons-io-2.4-bin.zip
2、到目前为止仅仅是完成了准备工作,接下来就是相关的代码,首先要在eclipse中导入Apache的包(关于eclipse中怎么导入包就不说了)
Apache的commons-io-2.4包中类和方法过多就不一一演示,这里只演示将文本文档中的数据独处并存入String类型变量和文件拷贝。
(1)读取文本文档:
我们需要用的是文件工具类FileUtils,查看API文档查看用法
public static String readFileToString(File file,String encoding) throws IOException
readToString为静态方法可以直接通过类名调用,参数分别为文件和编码,关于编码Windows用的是“GBK”,
而Unix和Linux基本上用的是“UTF-8”具体根据自己的操作系统(所读取的文件编码)确定。
代码:
1 import java.io.File; 2 import java.io.IOException; 3 import org.apache.commons.io.FileUtils; 4 5 public class ApacheDemo { 6 7 public static void main(String[] args) { 8 File file = new File("test.txt"); 9 try { 10 String input = FileUtils.readFileToString(file,"GBK"); //FileUtils中的方法为静态方法,通过类名直接调用 11 System.out.println(input); 12 } catch (IOException e) { 13 e.printStackTrace(); 14 } 15 16 } 17 18 }
(2)文件拷贝:
同样用的文件工具类FileUtils,通过API文档查看方法
public static void copyFile(File srcFile, File destFile) throws IOException
同样为静态方法只需要通过类名来调用就行了参数分别为输入,输出的文件。
代码:
1 import java.io.File; 2 import java.io.IOException; 3 import org.apache.commons.io.FileUtils; 4 5 public class ApacheDemo { 6 7 public static void main(String[] args) { 8 File file = new File("test.txt"); 9 File newfile = new File("new_file.txt"); 10 try { 11 FileUtils.copyFile(file, newfile); 12 } catch (IOException e) { 13 e.printStackTrace(); 14 } 15 16 } 17 18 }
Apache的包中还提供了许许多多的IO流操作的类和方法,这些类和方法使用起来基本上很简单,通过类名和方法名基本上就能了解到其作用,通过参数能了解其使用方法。
最后本人也是在学习java中如果其中有任何错误或是见解不同的地方欢迎留言讨论。