java六课时

平常经常使用JAVA对文件进行读写等操作,这里汇总一下常用的文件操作。

1、创建文件

[java] view plain copy
public static boolean createFile(String filePath){
boolean result = false;
File file = new File(filePath);
if(!file.exists()){
try {
result = file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}

return result;  

}
2、创建文件夹

[java] view plain copy
public static boolean createDirectory(String directory){
boolean result = false;
File file = new File(directory);
if(!file.exists()){
result = file.mkdirs();
}

return result;  

}
3、删除文件

[java] view plain copy
public static boolean deleteFile(String filePath){
boolean result = false;
File file = new File(filePath);
if(file.exists() && file.isFile()){
result = file.delete();
}

return result;  

}
4、删除文件夹

递归删除文件夹下面的子文件和文件夹

[java] view plain copy
public static void deleteDirectory(String filePath){
File file = new File(filePath);
if(!file.exists()){
return;
}

if(file.isFile()){  
    file.delete();  
}else if(file.isDirectory()){  
    File[] files = file.listFiles();  
    for (File myfile : files) {  
        deleteDirectory(filePath + "/" + myfile.getName());  
    }  
      
    file.delete();  
}  

}
5、读文件

(1)以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件

[java] view plain copy
public static String readFileByBytes(String filePath){
File file = new File(filePath);
if(!file.exists() || !file.isFile()){
return null;
}

StringBuffer content = new StringBuffer();  
  
try {  
    byte[] temp = new byte[1024];  
    FileInputStream fileInputStream = new FileInputStream(file);  
    while(fileInputStream.read(temp) != -1){  
        content.append(new String(temp));  
        temp = new byte[1024];  
    }  
      
    fileInputStream.close();  
} catch (FileNotFoundException e) {  
    e.printStackTrace();  
} catch (IOException e) {  
    e.printStackTrace();  
}  
  
return content.toString();  

}
(2)以字符为单位读取文件,常用于读文本,数字等类型的文件,支持读取中文

[java] view plain copy
public static String readFileByChars(String filePath){
File file = new File(filePath);
if(!file.exists() || !file.isFile()){
return null;
}

StringBuffer content = new StringBuffer();  
try {  
    char[] temp = new char[1024];  
    FileInputStream fileInputStream = new FileInputStream(file);  
    InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "GBK");  
    while(inputStreamReader.read(temp) != -1){  
        content.append(new String(temp));  
        temp = new char[1024];  
    }  
      
    fileInputStream.close();  
    inputStreamReader.close();  
} catch (FileNotFoundException e) {  
    e.printStackTrace();  
} catch (IOException e) {  
    e.printStackTrace();  
}  
  
return content.toString();  

}
(3)以行为单位读取文件,常用于读面向行的格式化文件

[java] view plain copy
public static List readFileByLines(String filePath){
File file = new File(filePath);
if(!file.exists() || !file.isFile()){
return null;
}

List<String> content = new ArrayList<String>();  
try {  
    FileInputStream fileInputStream = new FileInputStream(file);  
    InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "GBK");  
    BufferedReader reader = new BufferedReader(inputStreamReader);  
    String lineContent = "";  
    while ((lineContent = reader.readLine()) != null) {  
        content.add(lineContent);  
        System.out.println(lineContent);  
    }  
      
    fileInputStream.close();  
    inputStreamReader.close();  
    reader.close();  
} catch (FileNotFoundException e) {  
    e.printStackTrace();  
} catch (IOException e) {  
    e.printStackTrace();  
}  
  
return content;  

}
6、写文件

字符串写入文件的几个类中,FileWriter效率最高,BufferedOutputStream次之,FileOutputStream最差。

(1)通过FileOutputStream写入文件

[java] view plain copy
public static void writeFileByFileOutputStream(String filePath, String content) throws IOException{
File file = new File(filePath);
synchronized (file) {
FileOutputStream fos = new FileOutputStream(filePath);
fos.write(content.getBytes(“GBK”));
fos.close();
}
}
(2)通过BufferedOutputStream写入文件

[java] view plain copy
public static void writeFileByBufferedOutputStream(String filePath, String content) throws IOException{
File file = new File(filePath);
synchronized (file) {
BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(filePath));
fos.write(content.getBytes(“GBK”));
fos.flush();
fos.close();
}
}
(3)通过FileWriter将字符串写入文件

[java] view plain copy
public static void writeFileByFileWriter(String filePath, String content) throws IOException{
File file = new File(filePath);
synchronized (file) {
FileWriter fw = new FileWriter(filePath);
fw.write(content);
fw.close();
}
}

上一篇:Ansys采用后处理list Rusult输出位移时负号原因导致不能分列的python解决方法


下一篇:Python爬取笔趣阁小说