Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

第 15 章 IO

目录

15.1. 取出文件名中的扩展名
15.1.1. getAbsolutePath() 获取绝对路径
15.1.2. 创建目录 mkdir()
15.1.3. 文件删除
15.1.4. 临时文件
15.2. FileWriter 文本写入文件
15.3. Files
15.3.1. 删除文件
15.3.2. 创建目录和文件
15.4. BufferedWriter
15.5. PrintWriter
15.6. FileOutputStream
15.6.1. OutputStreamWriter
15.7. FileInputStream
15.7.1. InputStreamReader
15.7.2. inputStream.transferTo()
15.8. Scanner
15.9. 二进制文件
15.9.1. 理解二进制文件
15.9.2. byte 类型
15.9.3. boolean 布尔型
15.9.4. Long 型
15.9.5. char 类型
15.9.6. UTF 字符串
15.9.7. Short 类型
15.9.8. float 单精度浮点类型
15.9.9. double 数据类型
15.9.10. 二进制文件操作演示
15.10. 路径操作汇总
15.10.1. 获得 Resource 下文件路径
15.10.2. URI/相对/拒绝/路径/文件
15.10.3. URL 操作汇总
15.10.4. nio 路径库
15.11. 遍历目录和文件
15.11.1. listFiles()
15.11.2. Files.newDirectoryStream
15.11.3. Files.list
15.11.4. Files.walk 递归遍历目录
15.11.5. SimpleFileVisitor

15.1. 取出文件名中的扩展名

		
	File file = new File("HelloWorld.jpeg");
	String fileName = file.getName();
	String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
	System.out.println(suffix);
		
		
		

15.1.1. getAbsolutePath() 获取绝对路径

			
	File configFile = new File(System.getProperty("user.dir") + configPath);
	System.out.printf("configFile : %s\n", configFile.getAbsolutePath());			
			
			

15.1.2. 创建目录 mkdir()

			
//判断cache目录是否存在的代码,如果不存在则创建cache目录
String path="/tmp/cache";
File dirname = new File(path);

//目录不存在  
if (!dirname.isDirectory()) 
{ 
     dirname.mkdir(); //创建目录
} 			
			
			

15.1.3. 文件删除

			
    public static boolean delete(String pathname) {
        boolean status = false;
        File file = new File(pathname);
        if (file.isFile() && file.exists()) {
            status = file.delete();
        }
        return status;
    }			
			
			
			
    public static void deleteOnExit(String pathname) {
        File file = new File(pathname);
        file.deleteOnExit();
    }
			
			

15.1.4. 临时文件

		
package cn.netkiller.file;

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

public class CreateTempFileExample
{
    public static void main(String[] args)
    {	
    
    	try{
    		
    	   //create a temp file
    	   File temp = File.createTempFile("temp-file-name", ".tmp"); 
    		
    	   System.out.println("Temp file : " + temp.getAbsolutePath());
    		
    	}catch(IOException e){
    		
    	   e.printStackTrace();
    		
    	}
    	
    }
}
		
			

Temp file : C:\Users\neo\AppData\Local\Temp\temp-file-name623426.tmp

指定目录创建临时文件,运行之后将会在 /tmp/convert 目录中创建文件

		
	@SneakyThrows
    public InputStream convertInputStreamAmrToPcm(InputStream inputStreamAmr) {
//        UUID uuid = UUID.randomUUID();
//        String filename = uuid.toString();
        String filename = "convert-";

        File source = File.createTempFile(filename, ".amr", new File("/tmp/convert"));
        File target = File.createTempFile(filename, ".pcm", new File("/tmp/convert"));

        if (!target.getParentFile().isDirectory()) {
            boolean directory = target.getParentFile().mkdirs();
        }

        log.info("Source: {}, Target: {}", source.getAbsolutePath(), target.getAbsolutePath());
        source.deleteOnExit();
        target.deleteOnExit();
        inputStreamAmr.transferTo(new FileOutputStream(source));
        boolean status = audioFormatConversion(source, target);
        log.info("Amr To Pcm: {}", status);
        if (!status) {
            return null;
        }
        InputStream inputStream = new FileInputStream(target);

        return inputStream;
    }