- 浏览: 1336980 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kay11:
...
JAVA生成简单的随机字符串(a-zA-Z0-9) -
zhangliguoaccp:
您好关于登录页面的验验证码这块怎么解决的?还有登录成功后,跳转 ...
JAVA,模拟HTTP登录 -
107x:
不错,谢谢!
<c:foreach 循环 map -
wenjin:
不知楼主是不还在想请叫一下我自己开的Tomcat下载一个文件C ...
Android 下载文件及写入SD卡 -
zyywgf:
JSTL c标签,fn标签,fmt标签
1.获取给定文件的文件名 获取给定文件的文件名,如程序3-22所示。该函数比较简单,就是通过文件分隔符,返回给定路径的最后一个分隔符之后的字符串,如果查找不到文件分隔符,则表明当前的参数s就是文件名称,直接返回即可。比如在Windows系统下的一个文件存储,路径可能是“C:\\temp\\image_log.txt”,程序最后返回的结果将是“image_log.txt”。
在Windows下的文件分隔符为“\”,而Linux下则为“/”,注意区分。
程序3-22 获取文件名
public static String extractFileName(String s)
{
int pos = s.lastIndexOf(File.separatorChar);
if (pos != -1) return s.substring(pos+1); else return s;
}
2.文件到文件流的操作 本模块的示例程序3-23实现了从文件读取到文件流及输入输出文件流之间的转换两部分。首先是loadFile函数,它把文件filename读入输入文件流,然后转换到输出文件流,这里使用ByteArrayOutputStream字节数组输出流。loadFile函数中使用convertStream函数,就是输入文件流和输出文件流之间的转换。循环读取,然后依次写入。
程序3-23 读文件
public static String loadFile(String filename)
{
try {
FileInputStream in = new FileInputStream(new File(filename));
ByteArrayOutputStream os = new ByteArrayOutputStream();
convertStream(in, os);
return os.toString();
}
catch (Exception ex) {}
return "";
}
//输入、输出文件流的转换
public static void convertStream(InputStream is, OutputStream os) throws NullPointerException, IOException
{
if (is == null || os == null) throw new NullPointerException();
byte[] buf = new byte[1024];
int cnt;
while ((cnt = is.read(buf)) != -1) os.write(buf, 0, cnt);
is.close();
os.close();
}
3.文件的复制 复制文件模块如程序3-24所示。文件复制的实现机制如下,首先建立两个文件流。一个是使用起始文件路径建立的输入文件流,一个是使用目标文件路径建立的输出文件流,然后循环从输入文件流读取,依次把内容写入输出文件流,这样就完成了文件的复制功能。
程序3-24 文件复制
/**
* 文件复制功能
*
* @param from 起始文件路径
* @param to 目标文件路径
* @return size 文件复制过程中操作的字节数
* @throws IOException
*/
public static long copyFile(File from, File to) throws IOException {
if (from == null || to == null || !from.isFile()) return -1;
FileInputStream fis = new FileInputStream( from );
FileOutputStream fos = new FileOutputStream( to );
byte [] buff = new byte[1024];
int read = 0;
long size = 0;
while ( (read = fis.read(buff)) > 0 ) {
fos.write(buff, 0, read);
size += read;
}
fos.close();
fis.close();
return size;
}
4.按照特定编码从文本文件读/写字符串 使用给定的编码encode从文件中读文件到字符串及使用给定的编码encode把字符串写入文件的模块,如程序3-25所示。函数readFromFile把文件读取到FileInputStream文件流中,然后显示结果的时候使用给定的编码encode返回。函数writeToFile是readFromFile的逆向过程,它的作用是向文件中写入字符串内容,写入前需要先把字符串text使用给定的编码转换一下,这样才能正确地写入到文件中去。
程序3-25 读/写文件
/**
*从文本文件读取文件内容为字符串,按照encode编码返回结果
*
* @param filename 要读取的文件
* @param encode 编码
* @return string readed
*/
public static String readFromFile(String filename, String encode) {
try {
FileInputStream fis = new FileInputStream(filename);
byte[] buf = new byte[fis.available()];
fis.read(buf);
fis.close();
return new String(buf, encode);
}
catch (Exception ex) {
ex.printStackTrace();
}
return "";
}
/**
* 按照encode向文本文件写入字符串
*
* @param text 需要写入的字符串
* @param filename 待写入的文件
* @param encode 编码
*/
public static void writeToFile(String text, String filename, String encode) {
try {
byte[] buf = text.getBytes(encode);
FileOutputStream fos = new FileOutputStream(filename);
fos.write(buf);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
3.4.2 文件目录处理模块 1.返回文件所在的目录 返回文件所在目录的模块,如程序3-26所示。该函数比较简单,就是通过文件分隔符,返回给定路径的最后一个分隔符之前的字符串即可。
程序3-26 返回文件所在目录
public static String extractFilePath(String s)
{
int pos = s.lastIndexOf(File.separatorChar);
if (pos != -1) return s.substring(0, pos+1); else return "";
}
2.把文件从一个目录移动到另外一个目录 在不同目录之间移动文件的模块,如程序3-27所示。文件移动操作的实现比较简单,如果文件from和文件to在同一目录下,只需要使用File类的renameTo函数即可,就是把源文件重命名成目标文件即可。当文件不在同一个目录下的时候,只需要使用文件复制功能,把源文件夹复制到目标文件夹即可。
程序3-27 文件移动
/**
* 在不同路径之间移动文件
*
* @param from 源地址
* @param to 目标地址
* @return 返回已经写入的字节数
* @throws IOException
*/
public static long moveFile(File from, File to) throws IOException {
if (from == null || to == null || !from.isFile()) return -1;
long size = 0;
if (from.getParent().equals(to.getParent())) {
from.renameTo(to);
FileInputStream fis = new FileInputStream( to );
size = fis.available();
fis.close();
} else {
size = copyFile(from, to);
from.delete();
}
return size;
}
3.使用给定的路径生成文件路径 使用给定的路径生成文件路径的模块代码,如程序3-28所示。基本原理是,使用File类的mkdir函数创建路径,代码递归调用createDirectory函数,使用绝对路径创建给定参数的文件路径。
程序3-28 生成文件路径
/**
* 使用给定的目录字符串创建文件目录,类似"/dd/aa/bb"
*
* @param path 要创建的路径,需要使用绝对路径
*/
public static void createDirectory( String fullpath ) {
File dir = new File(fullpath);
if(!dir.exists())
{
createDirectory( dir.getParentFile().getAbsolutePath() );
dir.mkdir();
}
}
4.删除文件目录 删除文件目录的模块代码,如程序3-29所示。该程序也是一个递归调用的过程,因为在目录的下面还可能包含其他的目录和文件,所以程序使用了一个for循环,依次删除子目录和文件。File类的delete方法只能删除该路径下的文件或者空目录,所以当判断子目录为文件目录时,需要递归调用deleteDirectory(File dir)函数方法,即下面程序代码中的deleteDirectory( children[i] );语句,最后遍历删除完该目录下的所有文件后,使用dir.delete()方法删除该空目录,完成文件目录删除的功能
程序3-29 删除文件目录
/**
* 递归删除特定的文件目录
*
* @param dir 需要删除的目录
*/
public static void deleteDirectory(File dir) {
if (dir == null || !dir.isDirectory()) return;
File[] children = dir.listFiles();
if (children != null) {
for (int i=0; i<children.length; i++) {
if ( children[i].isFile() ) {
children[i].delete();
} else if ( children[i].isDirectory() ) {
deleteDirectory( children[i] );
}
}
}
dir.delete();
}
发表评论
-
LinkedHashMap
2016-01-13 09:18 672public static void main(Strin ... -
计算星期几,本周的开始结束日期,上一周的开始结束日期
2015-11-04 15:03 1303package com.yinhe.util; imp ... -
java pattern matcher字符串替换
2015-10-28 13:56 898<div class="iteye-blog ... -
jfreechart实现仪表盘dashbord
2015-08-24 17:13 845package com.htcf.dashbord; ... -
java中byte,String,InputStream之间的转换
2012-09-20 17:09 21142import java.io.ByteArrayInpu ... -
StringBuffer清空方法,效率最高
2012-08-10 11:42 1817StringBuffer清空方法大致有4种: Stri ... -
日期大小写转换
2012-07-23 10:53 1935import java.util.Calendar; i ... -
web.xml不认<taglib>解决办法:
2012-07-11 15:24 970在web.xml不认<taglib>解决办法: ... -
VO,PO,TO,BO,POJO,DAO解释
2012-03-20 14:47 1493O/R Mapping:Object Relation ... -
Java 推算日期(计算距今多少年,多少月,多少天的日期)
2011-10-24 16:13 4907import java.text.SimpleDateForm ... -
jdk与jre的区别
2011-07-05 11:31 1215今天突然有朋友问, ... -
JAVA混淆 RetroGuard (转)
2011-06-17 13:28 64211、 下载并将retroguard.jar拷贝 ... -
JavaScript检测上传文件类型
2011-04-22 16:41 1874很实用的一个JS代码,判断一个上传表单允许上传的文件类型,扩展 ... -
比较全的文件操作(创建,删除,复制.文件,文件夹,复制图片)
2011-03-21 18:57 1324package com.potevio.zjhs.util; ... -
id,pid,数据库递归调用展示树形菜单的示例
2011-03-01 15:11 7429public class TreeDAO{ ... -
dtree 树形菜单(checkbox默认选中)
2011-01-24 15:07 5892采用dtree实现树形菜单展示,并有默认checkbox的选中 ... -
Java处理带返回值的存储过程Procedure (SQL Server)
2010-12-27 11:06 4820package com.zjx.test; import ... -
学JAVA很好的一个资源网站
2010-11-19 15:24 1355http://www.verycd.com/topics/93 ... -
某人关于不重复登录的简单处理说明
2010-11-02 13:39 13361.用的是servlet的监听器:(1)用的是HttpSess ... -
java获取资源文件(**.properties)
2010-11-01 15:57 1115import java.io.IOException; im ...
相关推荐
文件处理申请单(表格模板、DOC格式).doc是管理部門使用的文件处理申请单模板,用于记录和管理文件的处理过程。该模板包括以下几个主要部分:文件处理状态、文件信息、申请信息、签收信息和流程信息。 知识点1:...
易语言大文件处理源码,大文件处理,打开对象,关闭对象,取对象长度,移动对象位置,取对象位置,读入对象,CreateFile,CloseHandle,SetFilePointer,SetLastError,ReadFile,GetFileSizeEx
vs2010中有关c++大文件处理的方法
需要三个空白文件夹,一个存放数据包,一个存放解析时的json文件,还有一个存放最终的csv文件,并且最终制成数据集的形式
MATLAB中的SGY文件处理程序通常涉及以下几个关键步骤: 1. **读取SGY文件**:MATLAB程序首先需要读取SGY文件,这通常通过自定义的函数实现,因为MATLAB标准库中并未直接支持SGY格式。读取函数会解析文件头信息,...
易语言源码易语言大文件处理源码.rar
该C#源文件包含了一些函数封装了一些常见的文件和文件夹操作。
该类主要对常见的一些文件操作进行了封装,如读写文件(UTF-8)、复制文件、删除文件,创建目录等
在C++编程中,文件流(File Stream)是处理输入/输出操作的重要工具,它使得程序可以方便地读写磁盘上的文件。...通过学习和理解这些代码,你可以更好地掌握C++在文件处理和字符串操作方面的功能,提升你的编程技能。
csv文件的读写代码!希望对大家有所帮助!
Java读取大文件的处理 Java读取大文件的处理是Java编程中的一项重要技术,特别是在处理大文件时需要注意性能和响应速度。下面我们将对Java读取大文件的处理技术进行详细的介绍。 标题解释 Java读取大文件的处理是...
图片文件处理工具类
本项目是一款基于Python的档案转换与ico文件处理工具源码,共计30个文件,涵盖14个pyc字节码文件、8个Python源代码文件、5个XML配置文件、1个.gitignore配置文件、1个Idea项目文件和1个ico图标文件。该工具旨在提供...
该项目为基于Python和CDO工具设计的NC文件处理源码,包含62个文件,其中58个为Python源文件、2个R语言脚本文件以及2个Markdown文件。主要功能是利用Python和CDO工具对NC文件进行高效处理。
visual c++ vc使用内存映射文件mapping file处理大文件
本程序为fortran脚本,可以处理vasp数据文件LOCPOT及CHGCAR,运行本程序无需输入任何参数, !得到功函数势曲线(需减掉费米能级)和电荷线分布(除以体积可得电荷线密度) !若在linux-shell下运行(把中文注释删掉...
"photoshop处理.rgb格式文件的插件"是指用于增强Photoshop对RGB文件处理能力的外挂程序。这样的插件通常由Adobe或其他第三方开发商提供,它们可以扩展Photoshop的功能,比如提升色彩管理、增加滤镜效果、优化色彩...
处理SI5338 生成寄存器文件,将其转换成mif文件,即FPGA的存储器初始化文件
CSV文件是一种常见的...总之,"CSV大文件分割工具"是一个实用的工具,它解决了大CSV文件处理中的常见问题,提高了工作效率,并且降低了对系统资源的需求。在处理大量数据时,合理地运用这类工具能显著提升工作效果。
在ASP.NET Web API中,通过文件流下载文件到本地是一个常见的功能需求,它涉及到网络通信、文件处理和HTTP协议等多个方面。在这个实例中,我们将深入探讨如何实现这一过程,以及涉及的关键技术和步骤。 首先,我们...