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

java 操作文件相关技术

2011-09-22 22:34 423 查看
java得到文件路径下的所有文件名

/*

*@param 声明File对象,指定参数filePath

*/
File dir = new File(filePath); //返回此抽象路径下的文件
File[] files = dir.listFiles();
if (files == null) return;
for (int i = 0; i < files.length; i++) { //判断此文件是否是一个文件
if (!files[i].isDirectory()){

System.out.println(files[i].getName());

}

}

--------------------------------

/**

* 上传文件

*

* @param file 上传文件实体

* @param filename 上传文件新命名

* @param dir 上传文件目录

* @return

*/

public static boolean uploadFile(File file, String dir, String filename) {

boolean ret = false;

try {

if (file != null) {

java.io.File filePath = new java.io.File(dir);

if (!filePath.exists()) {

filePath.mkdir();

}

String target = dir + filename;

FileOutputStream outputStream = new FileOutputStream(target);

FileInputStream fileIn = new FileInputStream(file);

byte[] buffer = new byte[1024];

int len;

while ((len = fileIn.read(buffer)) > 0) {

outputStream.write(buffer, 0, len);

}

fileIn.close();

outputStream.close();

ret = true;

}

} catch (Exception ex) {

log.info("上传文件无法处理,请确认上传文件!");

}

return ret;

}

--------------------------------

删除文件:

/**

* 删除文件

*

* @param filePathAndName 删除文件完整路径:d:/filedir/filename

* @return

*/

public static boolean delFile(String filePathAndName) {

boolean ret = false;

try {

new File(filePathAndName.toString()).delete();

ret = true;

} catch (Exception e) {

System.out.println("删除文件操作出错");

e.printStackTrace();

}

return ret;

}

----------------------------------------

删除目录下全部文件:

/**

* 删除目录下的文件

*

* @param dir 文件目录 d:/filedir/

* @return

*/

public static boolean delFiles(String dir) {

boolean ret = false;

try {

File filePath = new File(dir);// 查询路径

String[] files = filePath.list();// 存放所有查询结果

int i = 0;

for (i = 0; i < files.length; i++) {

new java.io.File(dir + "/" + files[i]).delete();

}

ret = true;

} catch (Exception e) {

e.printStackTrace();

}

return ret;

}

--------------------------------------------

判断文件是否存在

/**

* 判断文件是否存在

*

* @param filename

* @return

*/

public static boolean isExist(String filename) {

boolean ret = false;

try {

File file = new File(filename.toString());

if (file.exists()) {

ret = true;

}

} catch (Exception e) {

e.printStackTrace();

}

return ret;

}

-------------------------------------------------

根据制定路径,可以获取当前正在操作的文件的大小,容量为byte.

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

public class FileByte {

private String filePath = "D:\\m07012600030000001_z.wav";

private void getFileByte(){

File f = new File(filePath) ;

try{

FileInputStream fis = new FileInputStream(f) ;

try {

System.out.println(fis.available()) ;

}catch(IOException e1){

e1.printStackTrace();

}

}catch(FileNotFoundException e2){

e2.printStackTrace();

}

}

public static void main(String[] args)

{

FileByte fb = new FileByte();

fb.getFileByte();

}

}

-------------------------------------------------------

如何用java获取网络文件的大小(多线程)

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.RandomAccessFile;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

public class saveToFile {

public void saveToFile(String destUrl, String fileName) throws IOException

{

FileOutputStream fos = null;

BufferedInputStream bis = null;

HttpURLConnection httpUrl = null;

URL url = null;

byte[] buf = new byte[2];

int size = 0;

int s=0;

//建立链接

url = new URL(destUrl);

httpUrl = (HttpURLConnection) url.openConnection();

//连接指定的资源

httpUrl.connect();

//获取网络输入流

bis = new BufferedInputStream(httpUrl.getInputStream());

//建立文件

fos = new FileOutputStream(fileName);

System.out.println("正在获取链接[" + destUrl + "]的内容...\n将其保存为文件[" + fileName + "]");

//保存文件

while ( (size = bis.read(buf)) != -1)

{

fos.write(buf, 0, size);

//++s;

System.out.println(size);

//System.out.println(s/1024+"M");

}

fos.close();

bis.close();

httpUrl.disconnect();

}

//多线程文件下载程序:

public class DownloadNetTest {

private File fileOut;

private java.net.URL url;

private long fileLength=0;

//初始化线程数

private int ThreadNum=5;

public DownloadNetTest(){

try{

System.out.println("正在链接URL");

url=new URL("http://211.64.201.201/uploadfile/nyz.mp3");

HttpURLConnection urlcon=(HttpURLConnection)url.openConnection();

//根据响应获取文件大小

fileLength=urlcon.getContentLength();

if(urlcon.getResponseCode()>=400){

System.out.println("服务器响应错误");

System.exit(-1);

}

if(fileLength<=0)

System.out.println("无法获知文件大小");

//打印信息

printMIME(urlcon);

System.out.println("文件大小为"+fileLength/1024+"K");

//获取文件名

String trueurl=urlcon.getURL().toString();

String filename=trueurl.substring(trueurl.lastIndexOf('/')+1);

fileOut=new File("D://",filename);

}

catch(MalformedURLException e){

System.err.println(e);

}

catch(IOException e){

System.err.println(e);

}

init();

}

private void init(){

DownloadNetThread [] down=new DownloadNetThread[ThreadNum];

try {

for(int i=0;i<ThreadNum;i++){

RandomAccessFile randOut=new RandomAccessFile(fileOut,"rw");

randOut.setLength(fileLength);

long block=fileLength/ThreadNum+1;

randOut.seek(block*i);

down[i]=new DownloadNetThread(url,randOut,block,i+1);

down[i].setPriority(7);

down[i].start();

}

//循环判断是否下载完毕

boolean flag=true;

while (flag) {

Thread.sleep(500);

flag = false;

for (int i = 0; i < ThreadNum; i++)

if (!down[i].isFinished()) {

flag = true;

break;

}

}// end while

System.out.println("文件下载完毕,保存在"+fileOut.getPath() );

} catch (FileNotFoundException e) {

System.err.println(e);

e.printStackTrace();

}

catch(IOException e){

System.err.println(e);

e.printStackTrace();

}

catch (InterruptedException e) {

System.err.println(e);

}

}

private void printMIME(HttpURLConnection http){

for(int i=0;;i++){

String mine=http.getHeaderField(i);

if(mine==null)

return;

System.out.println(http.getHeaderFieldKey(i)+":"+mine);

}

}

//线程类

public class DownloadNetThread extends Thread{

private InputStream randIn;

private RandomAccessFile randOut;

private URL url;

private long block;

private int threadId=-1;

private boolean done=false;

public DownloadNetThread(URL url,RandomAccessFile out,long block,int threadId){

this.url=url;

this.randOut=out;

this.block=block;

this.threadId=threadId;

}

public void run(){

try{

HttpURLConnection http=(HttpURLConnection)url.openConnection();

http.setRequestProperty("Range","bytes="+block*(threadId-1)+"-");

randIn=http.getInputStream();

}

catch(IOException e){

System.err.println(e);

}

////////////////////////

byte [] buffer=new byte[1024];

int offset=0;

long localSize=0;

System.out.println("线程"+threadId+"开始下载");

try {

while ((offset = randIn.read(buffer)) != -1&&localSize<=block) {

randOut.write(buffer,0,offset);

localSize+=offset;

}

randOut.close();

randIn.close();

done=true;

System.out.println("线程"+threadId+"完成下载");

this.interrupt();

}

catch(Exception e){

System.err.println(e);

}

}

public boolean isFinished(){

return done;

}

}

}

}

----------------------------

pom.xml里面声明java的jar

<dependency>

<groupId>com.sun</groupId>

<artifactId>tools</artifactId>

<version>1.6.0< ersion>

<scope>system</scope>

<systemPath>C:/Program Files/Java k1.6.0_05 b/tools.jar</systemPath>

</dependency>

----------------------------------------------

获取的路径里有空格变成20%以后,用什么把这个还原

String path = "111120%";

path=path.replace("20%"," ");

13795111413

----------------------------------------

70 到 110 之间怎么随机呢?

int ss=(int)(71+Math.random()*(100-71+1));

System.out.println(ss);

------------------------------------------

使用Calendar 处理时间格式

public static long parse(String dstr) {

if (dstr == null || dstr.length() == 0) {

return 0;

}

if (NumberUtils.isNumber(dstr)) {

return Long.parseLong(dstr) * 86400000;

}

String year = "";

String month = "";

String day = "";

int flag = 1;

char prech = 0;

dstr=dstr.trim();

for (char ch : dstr.toCharArray()) {

if (ch <= '9' && ch >= '0') {

switch (flag) {

case 1:

year += ch;

break;

case 2:

month += ch;

break;

case 3:

day += ch;

break;

}

} else {

if (prech <= '9' && prech >='0')

flag++;

}

prech = ch;

}

int y = year.equals("") ? 1970 : Integer.parseInt(year);

int m = month.equals("") ? 1 : Integer.parseInt(month);

int d = day.equals("") ? 1 : Integer.parseInt(day);

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, y);

cal.set(Calendar.MONTH, m-1);

cal.set(Calendar.DAY_OF_MONTH, d);

return cal.getTimeInMillis();

}

-------------------------------

输出任何格式的时间

截取时间

public void InterceptionTime() {

//先制造一个完整的时间.

DateFormat allTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

Date allTime = null;

try {

allTime = allTimeFormat.parse("2009-06-05 10:12:24.577");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//截取时间,也可以使用下边的SimpleDateFormat

DateFormat format = new SimpleDateFormat("HH:mm:ss.SSS");

String value = format.format(allTime);

System.out.println(value);

SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd");

String value2=dateFormat.format(allTime);

System.out.println(value2);

}

---------------------------------

转换2进制,

lang包中Integer类中有个static String toBinaryString(int i)

----------------------------------------------

oracle怎么判断表是否存在

select count(*) into num from USER_TABLES where TABLE_NAME='T2'

if num>0 then

--存在

end if;

------------------------------------------------------

记住帐号和密码

JS // 存cookie

Cookie user = new Cookie("User_Name", "hsyd");

Cookie pass = new Cookie("Password", "hsyd");

response.addCookie(user);

response.addCookie(pass);

// 取cookie

Cookie[] cookies = request.getCookies();

// ...找到匹配的cookie即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: