python與java的 比較



這個是java的一個工具類

主要完成一下工作

1、遍歷一個路徑得到該路徑下所有文件的全路徑

2、根據一個路徑得到文件的內容(txt,html等等)

3、將文件路徑和內容封裝在一個方法中以供調用

package com.util.tool;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;


public class ReadFileContent {

public static String CHARSET = "utf-8";// 讀取文件時的字符集
public static String ROWEND = "\r\n";// 讀取一行文件之後的換行符


/**
* @param args
*/
// public static void main(String[] args) {
// List<String> s = new ArrayList<String>();
// HtmlScript html = new HtmlScript();
// getFileList(s, "F:\\Eclipse Test File\\getContent\\");// 對s進行操作,最後處理的結果爲:s具有所有的文件列表
// // System.out.println(s);
// List<String[]> contentList = getContent(s);// 將路徑列表傳入,返回該路徑列表對應的所有路徑,文件內容的數組
//
// for (String[] cell : contentList) {
// System.out.println("############################");
// System.out.println(cell[0]);
// System.out.println(html.delHTMLTag((cell[1])));
// System.out.println("############################");
// }
// }


/**
* 傳入一個List,將該文件夾下所有的文件遞歸放入list

* @param list
*/
public static void getFileList(List<String> list, String path) {
File f = new File(path);
if (f.isDirectory()) {
// 如果是文件夾,則遍歷該文件夾下的所有子文件
File[] fl = f.listFiles();
for (File subFile : fl) {
getFileList(list, subFile.getPath());
}
} else {
// 如果不是文件夾,則將該文件放入list
list.add(f.getPath());
}
}


/**
* 傳入一個文件路徑+文件名列表,將其對應的內容讀取出,返回的結果爲List&lt;String[2]&gt;型
* 其中String[0]=filePath+fileName文件路徑,而String[1]爲文件內容

* @param list
* @return
*/
public static List<String[]> getContent(List<String> list) {
List<String[]> result = new ArrayList<String[]>();
for (String path : list) {
String content = getContentByPath(path);// 獲取文件內容
String[] cell = new String[] { path, content };// String[0]=filePath+fileName,String[1]爲文件內容
result.add(cell);
}
return result;
}


/**
* 傳入一個路徑,將該文件的內容讀取出

* @param path
* @return
*/
public static String getContentByPath(String path) {
StringBuilder result = new StringBuilder();
BufferedReader br = null;
FileInputStream fis = null;
try {
// 以下提供不同的讀法:
// 1、按行讀,最終結果爲讀取所有行的數據,去除換行符,最終爲一行
fis = new FileInputStream(new File(path));
br = new BufferedReader(new InputStreamReader(fis, CHARSET));
String line = null;
while ((line = br.readLine()) != null) {
result.append(line);
}
// 2、按行讀,最終結果爲讀取所有行的數據,添加換行符,最終爲多行
// fis = new FileInputStream(new File(path));
// br = new BufferedReader(new InputStreamReader(fis,CHARSET));
// String line = null;
// while((line = br.readLine())!=null){
// result.append(line).append(ROWEND);
// }


// 按字節讀,最終結果爲讀取所有的數據,原封不動的轉化爲原始數據
// File f = new File(path);
// fis = new FileInputStream(f);
// byte[] bytes = new
// byte[(int)f.length()];//文件大小有限制,最大隻能2^32-1字節大約等於
// byte[] buff = new byte[512];
// int count = 0;
// int point = 0;
// while((count=fis.read(buff))!=-1){
// System.arraycopy(buff, 0, bytes, point, count);
// point+=count;
// }
// result.append(new String(bytes,CHARSET));
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
if (fis != null)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return result.toString();
}


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章