您的位置:首页 > 编程语言 > Java开发

Java 文件I/O常用API 以及上传下载路径问题汇总

2016-01-06 21:20 836 查看

最近做项目,主要是将本地图片、音频上传到数据库中,在下载在指定文件路径,程序读取该路径进行显示和播放音频。通过这个功能,对JAVA 文件流以及上传下载的相关路径进行总结。

一、File类的使用

首先,针对文件的输入输出离不开java File 类,这个类具体方法大家可以通过JAVA API 查询,这里主要介绍
1、对file文件夹的操作。通过去读本地文件路径【注意,这里是文件夹的路径,而非某个具体文件】。

@Test
public void DirectoryTest()
{
//在本地磁盘创建一个file对象
File file=new File("F:\\FileTest"); //转义字符
//File file=new File("F:/FileTest2"); //同上功能
//判断该文件是否存在
System.out.println(file.exists());

//如果不存在,创建该文件夹 ;如果存在,删除
if(!file.exists())
{
file.mkdir();
//file.mkdirs(); //创建多级目录
}else
{
file.delete();
}

//判断是否是一个目录 --如果不是目录,或目录不存在,均返回false
System.out.println(file.isDirectory());
//判断是否为一个文件
System.out.println(file.isFile());
}

2、对文件的操作。针对本地某个具体文件进行读取、创建操作、获取文件当前路径

@Test
public void FileTest() throws IOException
{
File file=new File("F:\\FileTest\\1.txt");
//File file2=new File("F:\\FileTest","2.txt");
//如果文件不存在,创建
if(!file.exists())
{
file.createNewFile();
}else
{
file.delete();
}

System.out.println(file);//打印file.toString()文件路径
System.out.println(file.getAbsolutePath());//同上
System.out.println(file.getPath());//同上

System.out.println(file.getParent());//文件所在文件夹路径
System.out.println(file.getName());//fileName
System.out.println(file.getPath());//
}


3、遍历遍历指定路径文件下所有文件名
/*
* 列出指定dir 目录下所有文件(包括子目录)
*/

public static void listDirectory(File dir)
{
if(!dir.exists())
{
throw new IllegalArgumentException("目录"+dir+"不存在");
}
if(!dir.isDirectory())
{
throw new IllegalArgumentException(dir+"文件目录不存在");
}
//只显示文件名
String[] filesName=dir.list();
for(String string:filesName)
{
System.out.println(string);
}

//显示文件完整路径(包括文件夹中子文件目录)
File[] files=dir.listFiles();
for(File string:files)
{
System.out.println(string);
}

//如果连子目录文件夹中的文件也需要显示
if(files!=null && files.length>0)
{
for(File file :files)
{
if(file.isDirectory())
{
//如果file为文件目录,则递归,显示该file下文件==子文件
listDirectory(file);
}else
{
System.out.println(file);
}
}
}
}
@Test
public void fileListTest()
{
listDirectory(new File("F:\\FileTest"));
}

4、FileInputStream文件输入流,对指定文件如txt进行读取,以十六进制byte进行显示粗来。
public static void printIO(String fileName) throws IOException
{
FileInputStream in=new FileInputStream(fileName);
int b;
int i=1;
while((b=in.read())!=-1)
{
System.out.print(Integer.toHexString(b)+ " ");
if(i++%10 ==0)//每10个换行一次
{
System.out.println();
}
}
in.close();
}

@Test
public void fileIOTest() throws IOException
{
printIO("F:\\FileTest\\1.txt");
}
<span style="color: rgb(0, 0, 0); text-transform: none; letter-spacing: 0pt; font-family: 'Microsoft YaHei UI'; font-size: 10.5pt; font-style: normal; font-weight: normal; mso-spacerun: 'yes'; mso-font-kerning: 0.0000pt;"></span><span style="color: rgb(0, 0, 0); text-transform: none; letter-spacing: 0pt; font-family: 'Microsoft YaHei UI'; font-size: 10.5pt; font-style: normal; font-weight: normal; mso-spacerun: 'yes'; mso-font-kerning: 0.0000pt;"><o:p></o:p></span>


二、上传下载路径问题

   本总结均对于相对路径进行

@Test
public void testPath() throws IOException
{
File file0 =new File("22.txt"); //在该项目根文件下创建
File file1 =new File("src/22.txt");//相对路径,在该项目src下创建;src前切忌加入多余的特殊符号如“/”
File file2 =new File("../22.txt"); //在该项目上一级创建
File file3 =new File("../../22.txt");//在该项目上两级创建

file0.createNewFile();
}

结果展示 



../文件同级目录【也就是该项目上一级目录】:



../../在项目上量级目录中创建:



 通过对文件类的基本介绍,下面将对结合这次实例,继续深入介绍mongoDB 中文件上传、下载以及mongoDB GridFS文件系统。敬请期待。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: