Java - IO入门实现简单的转存
不多bibi直接上代码~
package fileStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.UUID;
public class FileSaveUtils {
/**
* 接收路径
* 这里需要接收一个绝对路径或相对路径只要能找到文件即可
* @return
* @throws IOException
*/
public static String fileInputPath(String is) {
//将接收到的路径处理分离
String[] newIs=is.split("/");
String name=newIs[newIs.length-1];
//获取拓展名
File file = new File(name);
String fileName = file.getName();
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
try {
//这里返回了一个文件名及拓展名xxx.ppt
String fileOutputPath = fileOutputPath(suffix,is);
return fileOutputPath;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
/**
* 存放路径
* name文件的拓展名
* is文件路径
* @return
* @throws IOException
*/
static private String fileOutputPath(String name,String is) throws IOException{
//获取UUID
String uuid = UUID.randomUUID().toString();
uuid = uuid.replace("-", "");
//设置存储路径,这里将文件名改为uuid随机名
String o = "F:/文件查看/";
String os = o+uuid+"."+name;
String path = uuid+"."+name;
//创建文件夹
File file = new File(o);
file.mkdirs();
fileSave(is,os);
return path;
}
/**
* 文件转存
* @param is
* @throws IOException
*/
static private void fileSave(String is,String os) throws IOException{
//读取流对象,和文件相关联
FileInputStream fis = new FileInputStream(is);
//写入流对象,明确存储文件地址
FileOutputStream fos = new FileOutputStream(os);
//将输入字节流对象和输出字节流对象跟缓冲对象关联
BufferedInputStream bufis = new BufferedInputStream(fis);
BufferedOutputStream bufos = new BufferedOutputStream(fos);
//再次定义缓冲区
byte[] buf = new byte[1024];
int len = 0;
while((len=bufis.read(buf))!=-1){
bufos.write(buf,0,len);
};
bufis.close();
bufos.close();
}
}
拜拜~