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

将文件内容全部倒置,并写入文件

2017-08-12 10:25 316 查看
/**
* 用途: 将一个文件全部倒置,并写入文件,如果文件的路径和源文件一样的话,就会覆盖源文件的内容
* @param fromFilepath 参数:源文件的全路径
* @param toFilePath 参数:目标文件的父目录路径,不加文件名
* 注意事项:文件的父级路径不存在则会自动创建
*/

public static void inversionFile(String fromFilepath, String toFilePath) {
File from = new File(fromFilepath);
if (!from.exists()) {
System.out.println("源文件不存在,请重新审核输入的文件路径!");
}

File to = new File(toFilePath);
if (!to.exists()) {
to.mkdirs();
}
ByteArrayOutputStream ou = null;
FileOutputStream fileOutputStream = null;
try {
RandomAccessFile ref = new RandomAccessFile(from, "rw");
ou = new ByteArrayOutputStream();
byte[] buffer = new byte[1024 * 8];
int len;
while ((len = ref.read(buffer)) != -1) {
ou.write(buffer, 0, len);
}
byte[] byteArray = ou.toByteArray();
//使用StringBuilder包装String,调用方法实现反转
StringBuilder sBuilder=new StringBuilder(new String(byteArray));
fileOutputStream = new FileOutputStream(new File(to, from.getName()));
fileOutputStream.write( sBuilder.reverse().toString().getBytes());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (ou != null) {
try {
ou.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息