java中如何获取目录中的所有文件

java中如何获取目录中的所有文件,第1张

public static void list(File path, String[] extArr,HashMap hm) {

if (!pathexists()) {

Systemoutprintln("文件名称不存在!");

} else {

if (pathisFile()) {

for (int i = 0; i < extArrlength; i++) {

if (pathgetName()toLowerCase()endsWith(extArr[i])) {// 文件格式

hmput(pathgetName(), path);

}

}

} else {

File[] files = pathlistFiles();

for (int i = 0; i < fileslength; i++) {

list(files[i], extArr,hm);

}

}

}

}

分为读字节,读字符两种读法

◎◎◎FileInputStream 字节输入流读文件◎◎◎

public class Maintest {

public static void main(String[] args) throws IOException {

File f=new File("G:\\just for fun\\xiangweitxt");

FileInputStream fin=new FileInputStream(f);

byte[] bs=new byte[1024];

int count=0;

while((count=finread(bs))>0)

{

String str=new String(bs,0,count); //反复定义新变量:每一次都 重新定义新变量,接收新读取的数据

Systemoutprintln(str); //反复输出新变量:每一次都 输出重新定义的新变量

}

finclose();

}

}

◎◎◎FileReader 字符输入流读文件◎◎◎

public class Maintest {

public static void main(String[] args) throws IOException {

File f=new File("H:\\just for fun\\xiangweitxt");

FileReader fre=new FileReader(f);

BufferedReader bre=new BufferedReader(fre);

String str="";

while((str=brereadLine())!=null) //●判断最后一行不存在,为空

{

Systemoutprintln(str);

}

breclose();

freclose();

}

}

/读取文件为String/

String filepath="e:/testtxt"; 

String charSet="UTF-8";

public static String readFile(String filepath, String charSet) throws IOException {

InputStreamReader read = null;

BufferedReader bufferedReader = null;

try {

read = new InputStreamReader(new FileInputStream(filepath), charSet);

bufferedReader = new BufferedReader(read);

String lineTxt = null;

StringBuffer buffer = new StringBuffer();

while ((lineTxt = bufferedReaderreadLine()) != null) {

bufferappend(lineTxt + ConstantLINE_SEPARATOR);

}

return buffertoString();

} catch (Exception e) {

throw e;

} finally {

if (bufferedReader != null)

bufferedReaderclose();

if (read != null) {

readclose();

}

}

}

JAVA中读取文件内容的方法有很多,比如按字节读取文件内容,按字符读取文件内容,按行读取文件内容,随机读取文件内容等方法,本文就以上方法的具体实现给出代码,需要的可以直接复制使用

public class ReadFromFile {

/

以字节为单位读取文件,常用于读二进制文件,如、声音、影像等文件。

/

public static void readFileByBytes(String fileName) {

File file = new File(fileName);

InputStream in = null;

try {

Systemoutprintln("以字节为单位读取文件内容,一次读一个字节:");

// 一次读一个字节

in = new FileInputStream(file);

int tempbyte;

while ((tempbyte = inread()) != -1) {

Systemoutwrite(tempbyte);

}

inclose();

} catch (IOException e) {

eprintStackTrace();

return;

}

try {

Systemoutprintln("以字节为单位读取文件内容,一次读多个字节:");

// 一次读多个字节

byte[] tempbytes = new byte[100];

int byteread = 0;

in = new FileInputStream(fileName);

ReadFromFileshowAvailableBytes(in);

// 读入多个字节到字节数组中,byteread为一次读入的字节数

while ((byteread = inread(tempbytes)) != -1) {

Systemoutwrite(tempbytes, 0, byteread);

}

} catch (Exception e1) {

e1printStackTrace();

} finally {

if (in != null) {

try {

inclose();

} catch (IOException e1) {

}

}

}

}

/

以字符为单位读取文件,常用于读文本,数字等类型的文件

/

public static void readFileByChars(String fileName) {

File file = new File(fileName);

Reader reader = null;

try {

Systemoutprintln("以字符为单位读取文件内容,一次读一个字节:");

// 一次读一个字符

reader = new InputStreamReader(new FileInputStream(file));

int tempchar;

while ((tempchar = readerread()) != -1) {

// 对于windows下,\r\n这两个字符在一起时,表示一个换行。

// 但如果这两个字符分开显示时,会换两次行。

// 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。

if (((char) tempchar) != '\r') {

Systemoutprint((char) tempchar);

}

}

readerclose();

} catch (Exception e) {

eprintStackTrace();

}

try {

Systemoutprintln("以字符为单位读取文件内容,一次读多个字节:");

// 一次读多个字符

char[] tempchars = new char[30];

int charread = 0;

reader = new InputStreamReader(new FileInputStream(fileName));

// 读入多个字符到字符数组中,charread为一次读取字符数

while ((charread = readerread(tempchars)) != -1) {

// 同样屏蔽掉\r不显示

if ((charread == tempcharslength)

&& (tempchars[tempcharslength - 1] != '\r')) {

Systemoutprint(tempchars);

} else {

for (int i = 0; i < charread; i++) {

if (tempchars[i] == '\r') {

continue;

} else {

Systemoutprint(tempchars[i]);

}

}

}

}

} catch (Exception e1) {

e1printStackTrace();

} finally {

if (reader != null) {

try {

readerclose();

} catch (IOException e1) {

}

}

}

}

/

以行为单位读取文件,常用于读面向行的格式化文件

/

public static void readFileByLines(String fileName) {

File file = new File(fileName);

BufferedReader reader = null;

try {

Systemoutprintln("以行为单位读取文件内容,一次读一整行:");

reader = new BufferedReader(new FileReader(file));

String tempString = null;

int line = 1;

// 一次读入一行,直到读入null为文件结束

while ((tempString = readerreadLine()) != null) {

// 显示行号

Systemoutprintln("line " + line + ": " + tempString);

line++;

}

readerclose();

} catch (IOException e) {

eprintStackTrace();

} finally {

if (reader != null) {

try {

readerclose();

} catch (IOException e1) {

}

}

}

}

/

随机读取文件内容

/

public static void readFileByRandomAccess(String fileName) {

RandomAccessFile randomFile = null;

try {

Systemoutprintln("随机读取一段文件内容:");

// 打开一个随机访问文件流,按只读方式

randomFile = new RandomAccessFile(fileName, "r");

// 文件长度,字节数

long fileLength = randomFilelength();

// 读文件的起始位置

int beginIndex = (fileLength > 4) 4 : 0;

// 将读文件的开始位置移到beginIndex位置。

randomFileseek(beginIndex);

byte[] bytes = new byte[10];

int byteread = 0;

// 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。

// 将一次读取的字节数赋给byteread

while ((byteread = randomFileread(bytes)) != -1) {

Systemoutwrite(bytes, 0, byteread);

}

} catch (IOException e) {

eprintStackTrace();

} finally {

if (randomFile != null) {

try {

randomFileclose();

} catch (IOException e1) {

}

}

}

}

/

显示输入流中还剩的字节数

/

private static void showAvailableBytes(InputStream in) {

try {

Systemoutprintln("当前字节输入流中的字节数为:" + inavailable());

} catch (IOException e) {

eprintStackTrace();

}

}

public static void main(String[] args) {

String fileName = "C:/temp/newTemptxt";

ReadFromFilereadFileByBytes(fileName);

ReadFromFilereadFileByChars(fileName);

ReadFromFilereadFileByLines(fileName);

ReadFromFilereadFileByRandomAccess(fileName);

}

}

以上就是关于java中如何获取目录中的所有文件全部的内容,包括:java中如何获取目录中的所有文件、java中如何从文件中读取数据、普通的java怎么来读取外部文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9484857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存