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();
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值