Java 文件I/O常用API 以及上传下载路径问题汇总
2016-01-06 21:20
836 查看
最近做项目,主要是将本地图片、音频上传到数据库中,在下载在指定文件路径,程序读取该路径进行显示和播放音频。通过这个功能,对JAVA 文件流以及上传下载的相关路径进行总结。
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");
}
@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文件系统。敬请期待。
最近做项目,主要是将本地图片、音频上传到数据库中,在下载在指定文件路径,程序读取该路径进行显示和播放音频。通过这个功能,对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文件系统。敬请期待。
相关文章推荐
- HashMap源码分析
- java——jstack使用
- Java中关键字Volatitle的作用!
- [JAVA修炼之路一]-JAVA ATOMIC 包
- spring+struts2是怎么结合的使用的,spring+Hibernate是如何结合使用的?
- Spring入门实例
- (java)Single Number III
- 初识EL表达式
- 【第五章】Spring表达式语言 之 5.1 概述 5.2 SpEL基础 ——跟我学spring3
- Struts2 -jsp页面位置不同访问方法不同
- spring注入简记
- javadoc工具生成开发者文档
- (java)Single Number
- (java)Compare Version Numbers
- web服务器
- 【第四章】 资源 之 4.4 Resource通配符路径 ——跟我学spring3
- [细品java]ThreadLocal源码学习
- (java)Rotate Array
- 12Java语法回顾之递归
- (java)Excel Sheet Column Title