
比如你的一个txt文件放在F盘下:
File f = new File(F:\\tabletxt)
试试
File file = new File("/src/atxt");
最原始的方法可以遍历所有盘符文件
public class Path
{
private final List<File> list=new ArrayList<File>();
private String directory;
public Path(String s)
{
thisdirectory=s;
}
private void genPath()
{
File[] roots=FilelistRoots();
for(File root:roots)
searchExists(root);
}
private void searchExists(File file)
{
String tempPath=filegetAbsolutePath();
if(tempPathcontains(directory)
&&(tempPathsubstring(tempPathlastIndexOf(directory))equals(directory)))
listadd(file);
if(fileisDirectory()&&filelist()!=null)
{
File[] files=filelistFiles();
for(File f:files)
{
searchExists(f);
}
}
}
public void listPath()
{
genPath();
for(File file:list)
Systemoutprintln(filegetAbsolutePath());
}
public static void main(String[] args) throws UnsupportedEncodingException
{
Path p=new Path("CS16");
plistPath();
}
}
测试正确,但性能太差,考虑用好的文件查找算法和多线程来作
1、文件基本认知
谈到文件无疑是从我们知道的开始说,狭义认知针对硬盘这种持久化存储的IO设备,当我们进行数据保存时,往往不是以以这个整体(一块内容)来保存的,而是单独保存的,这个独立的单位就在计算机中被抽象为文件的概念。
狭义:简单说就是硬盘上的文件 和 目录
文件除了有数据内容之外,还有一部分信息,例如文件名,文件类型,文件大小等并不作为文件数据类型而存在,这类信息就是文件的元信息。
广义:计算机中的软硬件资源
文件类似树结构一个文件下包含多个文件,当前文件有包含多个子文件,像树枝一样
文件的基本就是以上,没有什么特别的;
文件主要跟我们写代码有关系,之前我们写的代码,存储数据,主要是靠变量,变量是在内存中的。文件是在硬盘上的,本话题主要是如何实现代码与文件交接
11、文件路径
每个文件,在硬盘上都有一个具体的“路径”;
testtxt文件的路径 ,叫做E:/Test/testtxt表示一个文件的具体位置路径,就可以使用/来分割不同的目录级别
这里注意细节的友友们,会看到上使用的是反斜杠(\)但是我上面打出来是 斜杠(/)
问题为什么不一样?这样写的意义是什么?
(1)其实两种写法都可以,都是对的,可以尝试一下斜杠
(2)其次就是在java中尽量写 斜杠表示法 。为什么???
因为代码去写反斜杠的不方便
例如 :java中代码:String path="E:\Test\testtxt"; 现在的\T就以个转义字符
斜杠与反斜杠肯定是有由来的 ,最早期的DOS系统使用过反斜杠 ,后来又改成了斜杠再后来Windows也继承了这样的设定。
刚刚事例中的文件路径开头都有一个大写字母C:、D:或者E:都叫做“盘符”,当然写小写也是可以的,都能起作用,盘符是通过“硬盘分区”来的,每个盘符可以单独的占一个硬盘,也可以若干个盘符占一个硬盘。
有个稀奇的问题,为啥没有a:,b:盘符?
有,但是出现的比较早,现在已经淘汰了,这样的盘符在之前叫做软盘,存储空间对于现在来说太小了只有几MB,所以喜欢了可以买个收藏
12、相对路径
因为绝对路径就是在“文件路径”标题下,以盘符开头的路径
相对路径:以当前所在的目录为基准,或者以开头(也可以以开头),找到指定路径
当前目录也称为工作目录,每个程序运行的时候,都有一个工作目录,这里来看一下相对路径是个啥,在控制台执行 打开控制台 win+r 然后输入cmd
使用sigar,
private static void file() throws Exception {
Sigar sigar = new Sigar();
FileSystem fslist[] = sigargetFileSystemList();
for (int i = 0; i < fslistlength; i++) {
Systemoutprintln("分区的盘符名称" + i);
FileSystem fs = fslist[i];
// 分区的盘符名称
Systemoutprintln("盘符名称: " + fsgetDevName());
// 分区的盘符名称
Systemoutprintln("盘符路径: " + fsgetDirName());
Systemoutprintln("盘符标志: " + fsgetFlags());//
// 文件系统类型,比如 FAT32、NTFS
Systemoutprintln("盘符类型: " + fsgetSysTypeName());
// 文件系统类型名,比如本地硬盘、光驱、网络文件系统等
Systemoutprintln("盘符类型名: " + fsgetTypeName());
// 文件系统类型
Systemoutprintln("盘符文件系统类型: " + fsgetType());
switch (fsgetType()) {
case 0: // TYPE_UNKNOWN :未知
break;
case 1: // TYPE_NONE
break;
case 2: // TYPE_LOCAL_DISK : 本地硬盘
// 文件系统总大小
FileSystemUsage usage = null;
usage = sigargetFileSystemUsage(fsgetDirName());
Systemoutprintln(fsgetDevName() + "总大小: " + usagegetTotal() + "KB");
// 文件系统剩余大小
Systemoutprintln(fsgetDevName() + "剩余大小: " + usagegetFree() + "KB");
// 文件系统可用大小
Systemoutprintln(fsgetDevName() + "可用大小: " + usagegetAvail() + "KB");
// 文件系统已经使用量
Systemoutprintln(fsgetDevName() + "已经使用量: " + usagegetUsed() + "KB");
double usePercent = usagegetUsePercent() 100D;
// 文件系统资源的利用率
Systemoutprintln(fsgetDevName() + "资源的利用率: " + usePercent + "%");
break;
case 3:// TYPE_NETWORK :网络
break;
case 4:// TYPE_RAM_DISK :闪存
break;
case 5:// TYPE_CDROM :光驱
break;
case 6:// TYPE_SWAP :页面交换
break;
}
}
return;
}
以上就是关于Java如何读取src下的txt文件全部的内容,包括:Java如何读取src下的txt文件、如何用java代码得到文件夹的路径(即一个方法,输入文件夹名称,返回路径)、java写文件,如果path没有盘符等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)