`

java 文件操作

    博客分类:
  • File
 
阅读更多
android 文件工具
package com.example.asyncimageloader;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.os.Environment;

public class FileUtils {
	/**
	 * sd卡的根目录
	 */
	private static String mSdRootPath = Environment.getExternalStorageDirectory().getPath();
	/**
	 * 手机的缓存根目录
	 */
	private static String mDataRootPath = null;
	/**
	 * 保存Image的目录名
	 */
	private final static String FOLDER_NAME = "/AndroidImage";
	
	
	public FileUtils(Context context){
		mDataRootPath = context.getCacheDir().getPath();
	}
	

	/**
	 * 获取储存Image的目录
	 * @return
	 */
	private String getStorageDirectory(){
		return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ?
				mSdRootPath + FOLDER_NAME : mDataRootPath + FOLDER_NAME;
	}
	
	/**
	 * 保存Image的方法,有sd卡存储到sd卡,没有就存储到手机目录
	 * @param fileName 
	 * @param bitmap   
	 * @throws IOException
	 */
	public void savaBitmap(String fileName, Bitmap bitmap) throws IOException{
		if(bitmap == null){
			return;
		}
		String path = getStorageDirectory();
		File folderFile = new File(path);
		if(!folderFile.exists()){
			folderFile.mkdir();
		}
		File file = new File(path + File.separator + fileName);
		file.createNewFile();
		FileOutputStream fos = new FileOutputStream(file);
		bitmap.compress(CompressFormat.JPEG, 100, fos);
		fos.flush();
		fos.close();
	}
	
	/**
	 * 从手机或者sd卡获取Bitmap
	 * @param fileName
	 * @return
	 */
	public Bitmap getBitmap(String fileName){
		return BitmapFactory.decodeFile(getStorageDirectory() + File.separator + fileName);
	}
	
	/**
	 * 判断文件是否存在
	 * @param fileName
	 * @return
	 */
	public boolean isFileExists(String fileName){
		return new File(getStorageDirectory() + File.separator + fileName).exists();
	}
	
	/**
	 * 获取文件的大小
	 * @param fileName
	 * @return
	 */
	public long getFileSize(String fileName) {
		return new File(getStorageDirectory() + File.separator + fileName).length();
	}
	
	
	/**
	 * 删除SD卡或者手机的缓存图片和目录
	 */
	public void deleteFile() {
		File dirFile = new File(getStorageDirectory());
		if(! dirFile.exists()){
			return;
		}
		if (dirFile.isDirectory()) {
			String[] children = dirFile.list();
			for (int i = 0; i < children.length; i++) {
				new File(dirFile, children[i]).delete();
			}
		}
		
		dirFile.delete();
	}
}




1.拷贝文件可以用byte[]来实现,这种实现也比较简单。

下载网络文件

/**
	 * @author:
	 * @TODO:下载文件 
	 */
	private static boolean downloadFile(String urlStr,String dir,String fileName){
		boolean resultFlag = false ;
		URL url = null ;
		InputStream input = null ;
		OutputStream output = null ;
		try {
			url = new URL(urlStr);
			URLConnection  urlConnection = url.openConnection();
			urlConnection.setConnectTimeout(5*1000);  
			input = urlConnection.getInputStream();
			File dirFile = new File(dir);
			if(!dirFile.exists()){
				dirFile.mkdirs();
			}
			File file = new File(dir+"\\"+fileName);
			output = new FileOutputStream(file) ; 
			byte[] byt = new byte[1024];
			int length = 0;  
			// 开始读取 
	        while ((length = input.read(byt)) != -1) {  
	        	output.write(byt, 0, length);  
	        }  
	        input.close();
			output.close();
			resultFlag = true ;
			System.out.println("下载完成!");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return resultFlag ;
	}

调用:downloadFile("http://s0.hao123img.com/res/img/logo/logo201509091.png","D:\\x","x.jpg");



InputStream fin = null ;
OutputStream output = null ;
		byte[] byt = null ;
		try {
			//读取文件字节
			fin = new FileInputStream(new File("d:\\123.txt"));
			byt = new byte[fin.available()];
                        //把文件内容读到byte数组中
			fin.read(byt);
			
			//拷贝文件
			File file = new File("d:\\c");
			file.mkdirs() ;
			File f2 = new File("d:\\c\\123.txt");
		    output = new FileOutputStream(f2);
                    //复制文件把byte数组转换成File文件
		    output.write(byt);
		    
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		}
		catch (IOException e2) {
			e2.printStackTrace();
		}


2.创建文件夹File类
mkdir()
只能在已经存在的目录中创建创建文件夹。
mkdirs()
可以在不存在的目录中创建文件夹。诸如:a\\b,既可以创建多级目录。

所以在平时创建文件夹时多使用mkdirs()方法

3.文件夹下所有的文件

 import java.io.File;
import java.util.ArrayList;

public class FileTest {
 
 //用于存储文件夹下所有的文件名
 private static ArrayList<String> filelist = new ArrayList<String>();
 
 public static void main(String[] args) throws Exception {
    
    String filePath = "E://Test";
    getFiles(filePath);
 } 
 /*
  * 通过递归得到某一路径下所有的目录及其文件
  */
 static void getFiles(String filePath){
  File root = new File(filePath);
  //得到所有文件
  File[] files = root.listFiles();
    for(File file:files){     
     if(file.isDirectory()){
      /*
       * 递归调用
       */
      getFiles(file.getAbsolutePath());
      filelist.add(file.getAbsolutePath());
      System.out.println("显示"+filePath+"下所有子目录及其文件"+file.getAbsolutePath());
     }else{
      System.out.println("显示"+filePath+"下所有子目录"+file.getAbsolutePath());
     }     
    }
 }
}


4.删除文件

	public static boolean deleteFile(String filePath){
		boolean result = false;
		File file = new File(filePath);
		if(file.exists() && file.isFile()){
			result = file.delete();
		}
		
		return result;
	}


5.按行读取文件内容

fin = new FileInputStream(new File("d:\\c\\123.txt"));
//避免乱码所以用GBK
			BufferedReader buff = new BufferedReader(new InputStreamReader(fin,
					"GBK"));
			String tempStr = "";
			while ((tempStr = buff.readLine()) != null) {
				System.out.println(tempStr);
			}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java文件操作类

    java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...

    Java文件操作封装类

    Java文件操作封装类

    java文件操作工具类

    java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。

    java文件操作

    java 文件操作,创建文件,创建目录,删除文件目录

    java视频教程—Java文件操作

    java视频教程 Java文件操作 JavaFile

    java文件操作大全

    如何在Java中操作文件呢?转载供大家欣赏

    java文件操作(增删改查)

    本项目"java文件操作(增删改查)"是基于控制台实现的一个无界面程序,利用Eclipse集成开发环境编写,实现了基本的文件管理功能。下面我们将深入探讨这些知识点。 首先,我们要了解Java中的`java.io`包,它是处理输入...

    Java文件操作一例:Copy 复制文件.rar

    Java文件操作一例:Copy 复制文件,虽然是复制文件,不过通过本源码你可以学习很多相关的Java基础技巧,比如Java对文件的事件处理、取得目录内容的事件处理、如何弹出文件选择器、如何得到选择文件的绝对路径、如何...

    java文件操作大全.chm

    java文件操作大全.chm

    java 文件操作工具

    java 文件操作 压缩文件 解压文件 复制文件 复制文件夹

    java 文件操作工具类

    java 文件操作工具类

    java 文件操作大全107种情况

    java 文件操作 包括 文件删除 导出jsp Word 格式文件 ,文件合并修改等。

    《Java文件操作大全》电子书

    《Java文件操作大全》电子书 本文汇集常用文件操作方法,包括文件的建立/检查与删除,目录的建立/检查与删除,取出目录中文件,文件属性的取得,逐行读取数据等等。

    Java文件操作大全

    最全的java文件操作大全,包括文件的存储,建立,判断文件是否存在,建立文件删除文件,附加源码!!!

    Java文件操作方法总结

    Java文件操作中的一些常用方法的总结,可以参考参考啦!

    java文件操作.xmind

    里面包含了File类的作用、IO流、字节流字符流、异常处理、缓冲流、转换流、序列化、打印流的详细讲解

    Java文件操作大全[汇编].pdf

    Java文件操作大全[汇编].pdf

    Java文件操作类

    pan.razerpen.file中提供一个多对象单文件存储类FileMap和一个单对象单文件存储类FilePage。 提供方便快捷的基本类型和对象的文件存取方式。详细用法见sample.razerpen.file

Global site tag (gtag.js) - Google Analytics