我给你个例子,你把其中的路径File file = new File("c:\\tmp\\5");改成你的路径就行了。
public class Test2
{
public static void main(String[] args)
{
File file = new File("c:\\tmp\\5");
Test2 t = new Test2();
tmethod(file);
}
public void method(File f)
{
File[] FList = flistFiles();
for (int i = 0; i < FListlength; i++)
{
if (FList[i]isDirectory()==true)
{
method(FList[i]);
}
else
{
Systemoutprintln(FList[i]getAbsolutePath());
}
}
}
}
先定义一个方法然后在main方法里调用
public void getFileName(File f){
if(fisFile()){
Systemoutprintln(fgetName());
}else{
List<File> l=flistFile();
for(File file:l){
filegetFileName();
}
}
}
Java读取目录下的文件内容,使用的是java的文件类,示例如下:
import javaioBufferedReader;import javaioFile;
import javaioFileInputStream;
import javaioFileReader;
import javaioIOException;
import javaioInputStream;
import javaioInputStreamReader;
import javaioRandomAccessFile;
import javaioReader;
public class ReadFromFile {
/
以字节为单位读取文件,常用于读二进制文件,如、声音、影像等文件。
@param fileName
文件的名
/
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) {
}
}
}
}
/
以字符为单位读取文件,常用于读文本,数字等类型的文件
@param fileName
文件名
/
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) {
}
}
}
}
/
以行为单位读取文件,常用于读面向行的格式化文件
@param fileName
文件名
/
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) {
}
}
}
}
/
随机读取文件内容
@param fileName
文件名
/
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) {
}
}
}
}
/
显示输入流中还剩的字节数
@param in
/
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中获得一个文件夹中的所有文件名代码如下:
package comreadfile;
import javaioFile;public class GetAllFiles {
public static void main(String[] args) {
//路径 这里写一个路径进去
String path="F:\\QQ文档";
//调用方法
getFiles(path);
}
/
递归获取某路径下的所有文件,文件夹,并输出
/
public static void getFiles(String path) {
File file = new File(path);
// 如果这个路径是文件夹
if (fileisDirectory()) {
// 获取路径下的所有文件
File[] files = filelistFiles();
for (int i = 0; i < fileslength; i++) {
// 如果还是文件夹 递归获取里面的文件 文件夹
if (files[i]isDirectory()) {
Systemoutprintln("目录:" + files[i]getPath());
getFiles(files[i]getPath());
} else {
Systemoutprintln("文件:" + files[i]getPath());
}
}
} else {
Systemoutprintln("文件:" + filegetPath());
}
}
}
扩展资料:
如果想要获得当前文件中的文件名只需要String [] fileName = filelist();就可以了。
如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。
其中public static String [] getFileName(String path)是只得到当前文件中的文件名。
public static void getAllFileName(String path,ArrayList<String> fileName)是包括当前文件及其子文件的文件名。
参考资料:
百度百科-Java
以上就是关于java代码 读取一个文件夹下的所有文件夹及里面的文件。全部的内容,包括:java代码 读取一个文件夹下的所有文件夹及里面的文件。、java里如何遍历一个文件夹获取该文件夹里的所有文件名、Java 如何读取目录下的文件内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)