文件操作
最后更新于:2022-04-01 20:24:45
~~~
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
/**
*
* @author 海兰
*/
public class FileUtil {
public static String[] getUtfLines(String path) throws IOException {
byte[] filebyte=readFile(path);
String filestr=new String(filebyte,"UTF-8");
String[] rev=filestr.split("\n");
return rev;
}
public static String[] getLines(String path) throws IOException {
byte[] filebyte=readFile(path);
String filestr=new String(filebyte,"GBK");
String[] rev=filestr.split("\n");
return rev;
}
/**
* 读文件
*
* @param path
* 文件名
* @return 文件内容
* @throws IOException
*/
public static byte[] readFile(String path) throws IOException
{
return readFile(path, 0);
}
/**
* 读文件
*
* @param path
* 文件名
* @param offset
* 偏移位置
* @return 从偏移位置开始读取的文件内容
* @throws IOException
*/
public static byte[] readFile(String path, long offset)
throws IOException
{
return readFile(path, offset, -1);
}
/**
* 读文件
*
* @param path
* 文件名
* @param offset
* 偏移位置
* @param size
* 读取大小
* @return 从偏移位置开始读取size大小的文件内容
* @throws IOException
*/
public static byte[] readFile(String path, long offset, int size)
throws IOException
{
InputStream is = null;
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
is = new FileInputStream(path);
is.skip(offset);
byte[] buff = new byte[4096];
int bufLength = -1;
while ((bufLength = is.read(buff)) >= 0)
{
if (size > 0 && bufLength > size - baos.size())
{
baos.write(buff, 0, size - baos.size());
break;
} else
{
baos.write(buff, 0, bufLength);
}
}
return baos.toByteArray();
} finally
{
if (is != null)
{
is.close();
}
}
}
/**
* 写文件
*
* @param path
* 文件名
* @param content
* 文件内容
* @return 服务端保存文件的实际绝对路径
* @throws IOException
*/
public static String writeFile(String path, String content)
throws IOException
{
byte[] matter=content.getBytes("GBK");
return writeFile(path, matter, false);
}
/**
* 写文件
*
* @param path
* 文件名
* @param content
* 文件内容
* @param append
* 追加方式
* @return 服务端保存文件的实际绝对路径
* @throws IOException
*/
public static String writeFile(String path, String content,boolean append)throws IOException
{
byte[] matter=content.getBytes("GBK");
return writeFile(path, matter, append);
}
public static String writeToFile(String savePath, String content)
{
File f = new File(savePath);
if (f.exists())
f.delete();
try
{
PrintStream ps = new PrintStream(savePath);
String tmp[] = content.split("\n");
for (int i = 0; i < tmp.length; i++)
ps.println(tmp[i]);
}
catch (Exception e)
{
e.printStackTrace();
}
return "";
}
/**
* 写文件
*
* @param path
* 文件名
* @param content
* 文件内容
* @return 服务端保存文件的实际绝对路径
* @throws IOException
*/
public static String writeFile(String path, byte[] content)
throws IOException
{
return writeFile(path, content, false);
}
/**
* 写文件
*
* @param path
* 文件名
* @param content
* 文件内容
* @param append
* 追加方式
* @return 服务端保存文件的实际绝对路径
* @throws IOException
*/
public static String writeFile(String path, byte[] content,
boolean append) throws IOException
{
if (path == null || path.length() == 0)
{
path = File.createTempFile("writeServerFile", ".file")
.getAbsolutePath();
} else
{
path = new File(path).getAbsolutePath();
}
OutputStream os = null;
try
{
os = new BufferedOutputStream(new FileOutputStream(path, append));
os.write(content);
os.flush();
} finally
{
if (os != null)
{
os.close();
}
}
return path;
}
/**
* 获得该路径下的所有文件名的列表
* @param Url
* @return
*/
public static String[] getFileUrl(String Url)
{
File path = new File(Url);
String[] list;
list=path.list();
return list;
}
}
~~~
';