本文目录一览:
- 1、JAVA读取文件夹大小的几种方法实例
- 2、Go 读取大文件
- 3、如何用C语言获取文件的大小
- 4、python如何读取文件大小
- 5、c语言如何通过文件属性获取文件大小
- 6、把文件按指定大小读取出来怎么弄
JAVA读取文件夹大小的几种方法实例
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
public class Test {
public static void main(String[] args) throws Exception {
String searchStr = "APPTYPEID";
File searchDir = new File("D:\\xampp\\htdocs\\discuz");
ListSearch list = new ArrayListSearch();
CollectionFile files = FileUtils.listFiles(searchDir, null, true);
ListString lines = null;
for (File file : files) {
lines = FileUtils.readLines(file);
for (int i = 0; i lines.size(); i++) {
if (lines.get(i).indexOf(searchStr) != -1) {
Search s = new Search();
s.setFilename(file.getName());
s.setLine(i + 1);
s.setContent(lines.get(i));
list.add(s);
}
}
}
StringBuffer sb = new StringBuffer();
for (Search s : list) {
sb.append(s.getFilename() + " , " + s.getLine() + " , " + s.getContent()).append(
IOUtils.LINE_SEPARATOR);
}
FileUtils.writeStringToFile(new File("D:\\search.txt"), sb.toString(), "UTF-8");
}
}
class Search {
private String filename;
private int line;
private String content;
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public void setLine(int line) {
this.line = line;
}
public int getLine() {
return line;
}
}
Go 读取大文件
测试文件使用的文件大小为 1.35GB 的日志文本文件,使用下面两种方式来读取。
Go 标准库中包含了读写的缓冲库,直接使用即可:
输出结果为:
Go 标准库中包括了 io 读写的相关工具包,直接开箱即用:
输出结果为:
结果对比
测试发现, ioutil.ReadFile 比 bufio 读写还要快。
如何用C语言获取文件的大小
方法一:利用纯C语言来获取文件大小
unsigned long get_file_size(const char *filename){
unsigned long size;
FILE* fp = fopen( filename, "rb" );
if(fp==NULL){
printf("ERROR: Open file %s failed.\n", filename);
return 0;
}
fseek( fp, 0L, SEEK_END );
size=ftell(fp);
fclose(fp);
return size;
}
注:
ftell函数返回文件指针当前位置相对应文件首的便宜字节数,参数为文件指针。
fseek函数用于移动文件指针,第一个参数是文件指针,第二个参数是偏移量(正数表示正向偏移,负数表示负向偏移),第三个参数设定文件从哪里偏移,有三个选择:SEEK_SET(文件头,其是常数0)、SEEK_CUR(文件当前位置,其是常数1)、SEEK_END(文件尾,其是常数2)。-读取文件大小
优缺点:好处是你只要会C语言,就能够完全掌握而且十分容易理解这里面的道理。确定是纯C语言目前只能读取不超过2G的文件。所以对于超过2G的文件,其返回值是不正确的。
方法二:利用系统函数获取
笔者使用Uinx/Linux,所以此处就只写这类平台上的文件大小获许方式了。在Linux类平台上,每个被系统所管理的文件都有一个文件属性结构体(其中一个属性就是文件大小)与其对应,这个结构体叫stat,其内容在 /sys/stat.h中:-读取文件大小
stat {
mode_t st_mode; //文件对应的模式,文件,目录等
ino_t st_ino; //inode节点号
dev_t st_dev; //设备号码
dev_t st_rdev; //特殊设备号码
nlink_t st_nlink; //文件的连接数
uid_t st_uid; //文件所有者
gid_t st_gid; //文件所有者对应的组
off_t st_size; //普通文件,对应的文件字节数
time_t st_atime; //文件最后被访问的时间
time_t st_mtime; //文件内容最后被修改的时间
time_t st_ctime; //文件状态改变时间
blksize_t st_blksize; //文件内容对应的块大小
blkcnt_t st_blocks; //伟建内容对应的块数量
}
文件的上述属性,可以通过一个stat函数来获取。
stat函数声明形式:
stat(const char *restrict path, struct stat *restrict buf);
第一个参数是文件名,第二个参数是指向一个stat结构的指针。
由此我们很容易写出如下函数:
unsigned long get_file_size(const char *filename){
struct stat buf;
if(stat(filename, buf)0){
return 0;
}
return (unsigned long)buf.st_size;
}
在进行大文件处理时,显然需要采取后者。
注:与stat函数类似的函数还有lstat函数、fstat 函数
python如何读取文件大小
python读取文件大小的代码如下:
[python] view plaincopyimport os
from os.path import join, getsize
def getdirsize(dir):
size = 0L
for root, dirs, files in os.walk(dir):
size += sum([getsize(join(root, name)) for name in files])
return size
if '__name__' == '__main__':
filesize = getdirsize(r'c:\windows')
print 'There are %.3f' % (size/1024/1024), 'Mbytes in c:\\windows'
c语言如何通过文件属性获取文件大小
c语言可以通过stat()函数获得文件属性,通过返回的文件属性,从中获取文件大小。
#include
sys/stat.h
可见以下结构体和函数
struct
stat
{
_dev_t
st_dev;
_ino_t
st_ino;
unsigned
short
st_mode;
short
st_nlink;
short
st_uid;
short
st_gid;
_dev_t
st_rdev;
_off_t
st_size;
//文件大小
time_t
st_atime;
time_t
st_mtime;
time_t
st_ctime;
};
stat(const
char
*,
struct
_stat
*);
//根据文件名得到文件属性
参考代码:
#include sys/stat.h
void main( )
{
struct stat buf ;
if ( stat( "test.txt", buf ) 0 )
{
perror( "stat" );
return ;
}
printf("file size:%d\n", buf.st_size );
}
把文件按指定大小读取出来怎么弄
一、通过 CFile 类的成员函数 GetLength 获取文件大小; 二、通过 CFileFind 类的成员函数 GetLength 获取文件大小; 下面详细说明这两种方法: 一、CFile 类 1、通过 Open 成员函数打开文件这样就可以了-读取文件大小