文件读写操作-Java

读文件

字符串读取

File file = new File("/path/test.txt");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String tempString = null;
while ((tempString = bufferedReader.readLine()) != null) {
    //todo:读写
}
bufferedReader.close();//关闭
//InputStream in = new GZIPInputStream(new FileInputStream(fileName));读取压缩文件 

压缩文件读取

/**
 * @param fromFilePath 文件路径
 * @return
 * @throws Exception
 */
public static void segFile(String fromFilePath) throws Exception {
    InputStream in = new GZIPInputStream(new FileInputStream(fromFilePath));
    BufferedReader br = new BufferedReader(new InputStreamReader(in));

    String temp = null;
    while ((temp = br.readLine()) != null) {
        System.out.println(temp);
    }
    in.close();
    br.close();
}

写文件

字符串写入

File file = new File("/path/test.txt");
FileOutputStream out = new FileOutputStream(file); 
BufferedWriter br=new BufferedWriter(new OutputStreamWriter(out));
br.write("test write");
br.flush(); //刷缓存写到文件
br.colse(); //关闭连接

自动获取文件编码

    /**
     * 获取文件编码,其中ansi编码在windows debug模式下不支持
     * @param fileName
     * @return
     */
    public static String getFileEncode(String fileName) {  
          String charSet = "";  
         try {  
             FileInputStream fis = new FileInputStream(new File(fileName));  
             byte[] bf = new byte[3];  
             fis.read(bf);  
             fis.close();  
             if (bf[0] == -17 && bf[1] == -69 && bf[2] == -65) {  
                 charSet = "UTF-8";  
             } else if ((bf[0] == -1 && bf[1] == -2)) {  
                 charSet = "Unicode";  
             } else if ((bf[0] == -2 && bf[1] == -1)) {  
                 charSet = "Unicode big endian";  
             } else {  
                 charSet = "ANSI";  
             }  
         } catch (Exception e) {  
             e.printStackTrace();  
         }  
         return charSet;  
     }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹二木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值