以字符串的形式读取文件内容
public static String file2Str ( File file, String encoder) {
StringBuilder sb = new StringBuilder ( ) ;
BufferedReader in = null ;
try {
in = new BufferedReader (
new InputStreamReader (
new FileInputStream ( file) ,
encoder
)
) ;
String str = in. readLine ( ) ;
while ( str != null ) {
sb. append ( str) ;
str = in. readLine ( ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( in != null ) {
try {
in. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}
return sb. toString ( ) ;
}
字符串写入文件
public static void str2File ( File file, String data, String encoder) {
BufferedWriter out = null ;
try {
out = new BufferedWriter (
new OutputStreamWriter (
new FileOutputStream ( file) ,
encoder
)
) ;
out. write ( data) ;
out. flush ( ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( out != null ) {
try {
out. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}
}
读取文件成字节数组
public static byte [ ] file2Byte ( File file) {
byte [ ] data = null ;
FileInputStream in = null ;
try {
in = new FileInputStream ( file) ;
data = new byte [ in. available ( ) ] ;
in. read ( data) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( in != null ) {
try {
in. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}
return data;
}
将字节数组写入文件
public static void byte2File ( File file, byte [ ] data) {
FileOutputStream outputStream = null ;
try {
outputStream = new FileOutputStream ( file) ;
outputStream. write ( data) ;
outputStream. close ( ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( outputStream != null ) {
try {
outputStream. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}
}
按行读取文件成list
public static List < String > file2List ( File file, String encoder) {
List < String > alline = new ArrayList < > ( ) ;
BufferedReader in = null ;
try {
in = new BufferedReader (
new InputStreamReader ( new FileInputStream ( file) , encoder)
) ;
String str = in. readLine ( ) ;
while ( str != null ) {
alline. add ( str) ;
str = in. readLine ( ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( in != null ) {
try {
in. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}
return alline;
}
输出list到文件
public static void list2File ( File file, List < String > data, String encoder) {
BufferedWriter out = null ;
try {
out = new BufferedWriter (
new OutputStreamWriter ( new FileOutputStream ( file) , encoder)
) ;
for ( String str : data) {
out. write ( str) ;
out. newLine ( ) ;
}
out. flush ( ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( out != null ) {
try {
out. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}
}
从标准输入中读入
public static String system2Str ( ) throws IOException {
BufferedReader stdin = new BufferedReader ( new InputStreamReader ( System . in) ) ;
return stdin. readLine ( ) ;
}
文件转换为base64
public static byte [ ] getBase64 ( File file) {
FileInputStream fileInputStream = null ;
byte [ ] bytes = null ;
try {
fileInputStream = new FileInputStream ( file) ;
bytes = new byte [ fileInputStream. available ( ) ] ;
fileInputStream. read ( bytes) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( fileInputStream != null ) {
try {
fileInputStream. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
}
return bytes;
}
文件压缩
public static void zip ( String inputFilePath, String zipFileName)
throws Exception {
File srcFile = new File ( inputFilePath) ;
ZipOutputStream out = new ZipOutputStream ( new FileOutputStream ( zipFileName) ) ;
if ( srcFile. isDirectory ( ) ) {
zip ( out, srcFile, "" ) ;
} else {
zip ( out, srcFile, srcFile. getName ( ) ) ;
}
out. close ( ) ;
}
private static void zip ( ZipOutputStream out, File srcFile, String base)
throws Exception {
if ( srcFile. isDirectory ( ) ) {
File [ ] files = srcFile. listFiles ( ) ;
if ( ! "" . equals ( base) ) {
out. putNextEntry ( new ZipEntry ( base + "/" ) ) ;
base = base + "/" ;
}
for ( File file : files) {
System . out. println ( file. getAbsolutePath ( ) ) ;
zip ( out, file, base + file. getName ( ) ) ;
}
} else {
out. putNextEntry ( new ZipEntry ( base) ) ;
FileInputStream inputStream = new FileInputStream ( srcFile) ;
int b;
while ( ( b = inputStream. read ( ) ) != - 1 ) {
out. write ( b) ;
}
inputStream. close ( ) ;
}
}