個(gè)人專(zhuān)題目錄
org.apache.commons.io.FileUtils快速讀寫(xiě)文件
String fileName = "C://11.txt";
File file = new File(fileName);
String fileContent = "";
try {
fileContent = org.apache.commons.io.FileUtils.readFileToString(file, "GBK");
} catch (IOException e) {
e.printStackTrace();
}
fileContent += "Helloworld";
try {
org.apache.commons.io.FileUtils.writeStringToFile(file, fileContent, "GBK");
} catch (IOException e) {
e.printStackTrace();
}
其他參考
Commons IO方便讀寫(xiě)文件的工具類(lèi):
Commons IO是apache的一個(gè)開(kāi)源的工具包,封裝了IO操作的相關(guān)類(lèi),使用Commons IO可以很方便的讀寫(xiě)文件,url源代碼等.
普通地讀取一個(gè)網(wǎng)頁(yè)的源代碼的代碼可能如下
InputStream in = new URL("http://laoyu.info").openStream();
try {
InputStreamReader inR = new InputStreamReader(in);
BufferedReader buf = new BufferedReader(inR);
String line;
while ((line = buf.readLine()) != null) {
System.out.println(line);
}
} finally {
in.close();
}
使用了Commons IO,則可以大大簡(jiǎn)化代碼.如下:
InputStream in = new URL("http://laoyu.info").openStream();
try {
System.out.println(IOUtils.toString(in));
} finally {
IOUtils.closeQuietly(in);
}
Commons IO里的常用類(lèi)
FileUtils包含了文件操作的相關(guān)方法.
下面的代碼用于讀取磁盤(pán)上的某個(gè)文件:
- File file = new File("c:/test.txt");
- List lines = FileUtils.readLines(file, "UTF-8");
FileSystemUtils 可以獲得指定磁盤(pán)路徑的可用空間
- long freeSpace = FileSystemUtils.freeSpace("d:/");
文件復(fù)制代碼:
- File src = new File("src.txt");
- File dest = new File("dest.txt");
- FileUtils.copyFile(src, dest);
補(bǔ)充:
方便地下載文 件到本地
InputStream in = new URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
byte[] gif = IOUtils.toByteArray(in);
//IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));
FileUtils.writeByteArrayToFile(new File("c:/test.gif"), gif);
IOUtils.closeQuietly(in);
分享 commons io 工具類(lèi) 代碼
輸入流復(fù)制到 輸出流
Writer write = new FileWriter("c:\\kk.dat");
InputStream ins = new FileInputStream(new File("c:\\text.txt"));
IOUtils.copy(ins, write);
write.close();
ins.close();
文本寫(xiě)入指定文件
String name = "my name is panxiuyan";
File file = new File("c:\name.txt");
FileUtils.writeStringToFile(file, name);
將輸入流轉(zhuǎn)換成文本
URL url = new URL("http://www.dimurmill.com");
InputStream ins = url.openStream();
String contents = IOUtils.toString(ins, "UTF-8");
System.out.println("Slashdot: " + contents);
文件復(fù)制指定的目錄
File srcfile = new File("c:\\Test.java");
File destDir = new File("D:\\");
FileUtils.copyFileToDirectory(srcfile, destDir);
網(wǎng)絡(luò)流保存為文件
URL url = new URL("http://www.163.com");
File file = new File("c:\163.html");
FileUtils.copyURLToFile(url, file);
文件目錄操作
File dir = new File("c:\test");
FileUtils.cleanDirectory(dir);//清空目錄下的文件
FileUtils.deleteDirectory(dir);//刪除目錄和目錄下的文件
//目錄大小
long size = FileUtils.sizeOfDirectory(dir);
目錄操作
File testFile = new File("testFile.txt");
//如果不存在,新建
// 如果存在,修改文件修改時(shí)間
FileUtils.touch(testFile);
記錄流的讀取寫(xiě)入字節(jié)數(shù)
File test = new File("test.dat");
//輸出流的統(tǒng)計(jì)
CountingOutputStream countStream = null;
//輸入流的統(tǒng)計(jì)
//CountingInputStream countStream = null;
try {
FileOutputStream fos = new FileOutputStream(test);
countStream = new CountingOutputStream(fos);
countStream.write("Hello".getBytes());
} catch (IOException ioe) {
System.out.println("Error writing bytes to file.");
} finally {
IOUtils.closeQuietly(countStream);
}
if (countStream != null) {
int bytesWritten = countStream.getCount();
System.out.println("Wrote " + bytesWritten + " bytes to test.dat");
}
相同的內(nèi)容寫(xiě)入不同的文本
File test1 = new File("split1.txt");
File test2 = new File("split2.txt");
OutputStream outStream = null;
try {
FileOutputStream fos1 = new FileOutputStream(test1);
FileOutputStream fos2 = new FileOutputStream(test2);
//包含不同的文本
outStream = new TeeOutputStream(fos1, fos2);
outStream.write("One Two Three, Test".getBytes());
outStream.flush();
} catch (IOException ioe) {
System.out.println("Error writing to split output stream");
} finally {
IOUtils.closeQuietly(outStream);
}
文件刪除
File file = new File(("io/project.properties"));
String display = FileUtils.byteCountToDisplaySize(file.length());
System.out.println("project.xml is " + display);
FileUtils.forceDelete(file);
讀取取文本中的每一行:
File file = new File((Test.class.getClass().getResource("/io/web.xml")).getFile());
List lines = FileUtils.readLines(file, "UTF-8");
for (int i = 0; i < lines.size(); i++)
System.out.println(lines.get(i));