FileUtil

文件工具类  ——  FileUtil.java

  1. 获取Web工程的根目录  ——  String getBasePath()方法
  2. 获取文件名称  ——  public static String getFileName(String filePath)方法
  3. 获取文件名称前缀  ——  public static String getPrefixOfFileName(String filePath)方法
  4. 获取文件名后缀(文件类型)  ——  public static String getFileType(String filePath)方法
import java.io.File;

public class FileUtil {
	/**
	 * 函数功能:获取文件名称
	 * 
	 * @param filePath 文件路径
	 * @return 文件名称
	 */
	public static String getFileName(String filePath) {
		String fileName = filePath.substring(filePath.lastIndexOf("\\") + 1);
		return fileName;
	}

	/**
	 * 函数功能:获取文件名称的前缀
	 * 
	 * @param filePath 文件路径
	 * @return 文件名称前缀
	 */
	public static String getPrefixOfFileName(String filePath) {
		// 获取文件名称
		String fileName = getFileName(filePath);
		// 截取文件名称前缀
		String prefixOfFileName = fileName.substring(0,fileName.lastIndexOf("."));
		return prefixOfFileName;
	}

	/**
	 * 函数功能:获取文件名后缀(文件类型)
	 * 
	 * @param filePath 文件路径
	 * @return 文件类型
	 */
	public static String getFileType(String filePath) {
		// 获取文件名称
		String fileName = getFileName(filePath);
		// 截取文件名称前缀
		String fileType = fileName.substring(fileName.lastIndexOf("."));
		return fileType;
		
	}
	
	/**
	 * 函数功能:获取Web工程的根目录
	 *
	 * @return Web工程根目录
	 */
	public static String getBasePath() {
		try {
			String basePath = "";
			String path = System.getProperty("user.dir");
			File upload = new File(path);
			if (!upload.exists()) {
				upload.mkdirs();
			}
			basePath = upload.getAbsolutePath();
			return basePath;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	//测试
	public static void main(String[] args) {
		System.out.println("Web工程的根目录:"+getBasePath());
		String filePath = "F:\\Java工具类\\文件操作工具类\\FileUtil.java";
		System.out.println("文件名称为:"+getFileName(filePath));
		System.out.println("文件名称前缀为:"+getPrefixOfFileName(filePath));
		System.out.println("文件名称后缀为:"+getFileType(filePath));
	}
}

 

    /**
     * 函数功能:根据文件路径加文件名读取文件内容
     *
     * @param fileName 文件路径加文件名称
     * @return 文件内容字符串
     */
    public static String readFileContent(String fileName) {
        try {
            File f = new File(fileName);

            FileInputStream fip = new FileInputStream(f);
            // 构建FileInputStream对象

            InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
            // 构建InputStreamReader对象,编码为UTF-8

            StringBuffer sb = new StringBuffer();
            while (reader.ready()) {
                sb.append((char) reader.read());
                // 转成char加到StringBuffer对象中
            }

            reader.close();
            // 关闭读取流

            fip.close();
            // 关闭输入流,释放系统资源

            return sb.toString();

        } catch (IOException e) {
            System.out.print(e.getMessage());
        }
        return null;
    }

 


未完,待更新……

 

### Android 中 `FileUtil` 的使用教程与示例 #### 一、简介 `FileUtil` 是一个常用的工具类,在 Android 开发中用于处理文件操作。它提供了多种便捷的方法来管理本地文件,例如读取文件内容、写入数据到文件以及检查文件是否存在等功能。 --- #### 二、核心功能概述 以下是 `FileUtil` 提供的主要功能及其对应的实现方式: 1. **判断文件是否存在** 可通过调用静态方法 `isFileExist(String path)` 来检测指定路径下的文件是否存在[^2]。 ```java boolean isExists = FileUtil.isFileExist("/path/to/file.txt"); ``` 2. **读取文件为字节数组** 使用 `readFileByBytes(String filePath)` 方法可以将整个文件的内容读取为字节数组[^3]。 ```java byte[] imageData = FileUtil.readFileByBytes("/storage/emulated/0/image.png"); ``` 3. **获取系统目录** 支持获取各种类型的系统目录并支持自定义子路径创建[^5]。 - 获取应用缓存目录: ```java String cacheDir = FileUtil.getCacheDirectory(context); ``` - 创建带自定义路径的外部存储目录: ```java String customExternalPath = FileUtil.getExternalFilesDir(context, "/my_custom_folder/"); ``` 4. **格式化文件路径** 对输入的字符串进行标准化处理,确保路径合法有效。 ```java String formattedPath = FileUtil.formatFilePath("/../invalid/path//example.txt"); ``` 5. **判断外置存储状态** 检查设备上的 SD 卡或其他可移动存储介质是否可用。 ```java boolean isAvailable = FileUtil.isExternalStorageAvailable(); ``` --- #### 三、综合示例代码 以下是一个完整的例子,展示如何利用 `FileUtil` 进行常见的文件操作: ```java import android.content.Context; public class FileUtilsExample { private Context context; public FileUtilsExample(Context context) { this.context = context; } /** * 判断文件是否存在并打印结果 */ public void checkFileExistence() { String filePath = "/storage/emulated/0/example_file.txt"; if (FileUtil.isFileExist(filePath)) { System.out.println("The file exists."); } else { System.out.println("The file does not exist."); } } /** * 将图片文件转换为字节数组 */ public void readImageAsByteArray() { try { String imagePath = "/storage/emulated/0/sample_image.jpg"; byte[] imageBytes = FileUtil.readFileByBytes(imagePath); if (imageBytes != null && imageBytes.length > 0) { System.out.println("Image successfully converted to byte array with size: " + imageBytes.length); } else { System.out.println("Failed to convert the image to a byte array."); } } catch (Exception e) { e.printStackTrace(); } } /** * 获取外部存储中的特定目录 */ public void getCustomExternalDirectory() { String externalPath = FileUtil.getExternalFilesDir(context, "/custom_directory/"); System.out.println("Custom External Directory Path: " + externalPath); } } ``` --- #### 四、注意事项 1. 需要声明权限:如果涉及访问外部存储,则需在 `AndroidManifest.xml` 文件中添加如下权限声明: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ``` 2. 动态请求权限:对于 API Level >= 23 的设备,还需要动态申请运行时权限。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值