JAVA的File问题(输出文件夹中文件的路径名称)

JAVA的File问题(输出文件夹中文件的路径名称),第1张

你在输入路径要这样输入“ e:\\”   你用递归来获取判断主函数里是不用在去链腊循环的,你这段代码可以改一下:棚信滑

public static void list(File fe)

{

    File[] h=fe.listFiles()

    for(int x=0x<h.lengthx++)

    {

        if(h[x].isDirectory())

           list(h[x])         

        else

           System.out.pritln(h[x])

    }

}

public 坦好static void main(String[] args)

{

    File file=new File("e:\\")

    list(file)

}

如果文件数量过多建议不要使用递归,内存会溢出。这个要抛个IO异常。

程序如下:

<span style="color:#990000">

</span>File file1 = new File("/home/a123/a")

if (file1.exists()) {

System.out.println("存在文件夹a")

} else {

file1.mkdir()// 文件夹的创建 创建文件夹/home/a123/a

}

File file2 = new File("/home/a123/a/test"没谈)

if (file2.exists()) {

System.out.println("存在文件夹或者文件test")

} else {

try {

file2.createNewFile()// 文件的慎察氏创建,注意与文件夹创建的区别

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

/**

* 最简单的文件读写方法是使用类FileWriter

* (它的父类依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object )

*/

// 下面是向文件file2里面写数据

try {

FileWriter fileWriter = new FileWriter(file2)

String s = new String("This is a test! \n" + "aaaa")

fileWriter.write(s)

fileWriter.close()// 关闭数据流

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

/*

* 这样写数据的话,是完全更新文件test里面的内容,即把以前的东西全部删除,重新输入。

* 如果不想删除以前的数据,而是把新增加的内容增添在文件末尾处。只需要在创建FileWriter对象时候,使用另外一个构造函数即可:

* FileWriter fileWriter=new FileWriter(file2,true)

*/

// 下面是从文件file2读东西

try {

FileReader fileReader = new FileReader(file2)

String s = null

char ch

try {

char[] c = new char[100]

fileReader.read(c,0,2)// 具体想得到文件里面的宽散什么值(单个char?int?还是String?),

System.out.println(c)

fileReader.close()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

/**

* 具体想得到文件里面的什么值(单个char?int?还是String?),需要知道不通read的不同用法:

* 1. int read() 读取单个字符。

* 2. int read(char[] cbuf) 将字符读入数组。可以再将字符型数组转化位字符串

* 3. int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。

* 这三个方法都返回一个int值,作用是:读取的字符数,如果已到达流的末尾,则返回 -1.

*/

}

可以通过swing技术实现,继承自JFileChooser 即可。也可以设置固定类型的文件选择。

举例:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package hkrt.b2b.util

import java.io.File

//import java.io.FileFilter

import javax.swing.JFileChooser

import javax.swing.filechooser.FileFilter

/**

*/

public class FileChooser extends JFileChooser {

JFileChooser jfc = new JFileChooser()

public String openWin() {

jfc.setAcceptAllFileFilterUsed(false)//设置文件过滤条件,在文件选择中没有“所有文件”的选迟早项

jfc.setFileSelectionMode(JFileChooser.FILES_ONLY)//设置文件选择类型,在这里春旦或只是选择具体文件

jfc.setFileFilter(

new FileFilter() {

@Override

public boolean accept(File f) {

if(f.getName().toLowerCase().endsWith(".xls"扒伍)){

return f.getName().toLowerCase().endsWith(".xls")//添加过滤文件类型。以后缀做判断

} else if (f.getName().toLowerCase().endsWith(".xlsx")){

return f.getName().toLowerCase().endsWith(".xlsx")

}

return false

}

@Override

public String getDescription() {

return "Excel File"//在文件类型中的显示

}

})

jfc.showOpenDialog(null)

File xls = jfc.getSelectedFile()

if(xls == null){

return ""

}

String resultOpen = jfc.getSelectedFile().getPath()//获取文件路径

return resultOpen

}

}

备注:以上方法就获取到了文件的绝对路径,返回值即是路径值。


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

原文地址: http://outofmemory.cn/tougao/12279741.html

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

发表评论

登录后才能评论

评论列表(0条)

保存