//写
public static String writeTxt(String path,String txt) {
try{
File f = new File(path);
if (!f.exists()){
f.createNewFile();
}
//定义编码
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
BufferedWriter writer = new BufferedWriter(write);
writer.write(txt);
writer.close();
} catch (Exception e) {
System.out.println("写文件内bai容操作出错");
e.printStackTrace();
}
FileWriter writer;
try {
writer = new FileWriter(path);
writer.write("");
writer.write(txt);
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
//指定原文编码
public static void txtWriter(String path,String txt,){
FileWriter fw = null;
try {
//如果文件存在,则追加内容;如果文件不存在,则创建文件
File f=new File(path);
if(!f.exists()){
//f.createNewFile();//如果文件不存在,则创建文件
fw = new FileWriter(path);
fw.flush();
}
fw.close();
FileOutputStream fos=new FileOutputStream(path,true);
//写入时指定原来的编码格式
OutputStreamWriter osw=new OutputStreamWriter(fos,getFilecharset(new File(path)));
PrintWriter pw = new PrintWriter(osw);
pw.append(txt);
pw.flush(); // 清空缓冲区的数据流
//pw.println("copy "+fileNames[i]+" c:\\u\\201506");
pw.close();
osw.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//读
public static String read(File file){
String encoding=getFilecharset(file);
StringBuilder result = new StringBuilder();
try{
InputStreamReader read = new InputStreamReader (new FileInputStream(file),encoding);
BufferedReader br = new BufferedReader(read);
String s = null;
while((s = br.readLine())!=null){//使用readLine方法,一次读一行
result.append(s+"\r\n");//换行
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
System.out.println(result);
return result.toString();
}
//编码识别
public static String getFilecharset(File sourceFile) {
String charset = "GBK";
byte[] first3Bytes = new byte[3];
try {
boolean checked = false;
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(sourceFile));
bis.mark(0);
int read = bis.read(first3Bytes, 0, 3);
if (read == -1) {
return charset;
} else if (first3Bytes[0] == (byte) 0xFF
&& first3Bytes[1] == (byte) 0xFE) {
charset = "UTF-16LE";
checked = true;
} else if (first3Bytes[0] == (byte) 0xFE
&& first3Bytes[1] == (byte) 0xFF) {
charset = "UTF-16BE";
checked = true;
} else if (first3Bytes[0] == (byte) 0xEF
&& first3Bytes[1] == (byte) 0xBB
&& first3Bytes[2] == (byte) 0xBF) {
charset = "UTF-8";
checked = true;
}
bis.reset();
if (!checked) {
int loc = 0;
while ((read = bis.read()) != -1) {
loc++;
if (read >= 0xF0){
break;}
if (0x80 <= read && read <= 0xBF)
{break;}
if (0xC0 <= read && read <= 0xDF) {
read = bis.read();
if (0x80 <= read && read <= 0xBF)
{continue;}
else
{break;}
} else if (0xE0 <= read && read <= 0xEF) {
read = bis.read();
if (0x80 <= read && read <= 0xBF) {
read = bis.read();
if (0x80 <= read && read <= 0xBF) {
charset = "UTF-8";
{break;}
} else
{break;}
} else
{ break;}
}
}
}
bis.close();
} catch (Exception e) {
e.printStackTrace();
}
return charset;
}
//InputStream 流输出内容
//<1>创建字节数组输出流,用来输出读取到的内容
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//<2>创建缓存大小
byte[] buffer = new byte[1024]; // 1KB
//每次读取到内容的长度
int len = -1;
//<3>开始读取输入流中的内容
while ((len = in.read(buffer)) != -1) { //当等于-1说明没有数据可以读取了
baos.write(buffer, 0, len); //把读取到的内容写到输出流中
}
//<4> 把字节数组转换为字符串
String content = baos.toString();
//<5>关闭输入流和输出流
in.close();
baos.close();
//<6>返回字符串结果
关注"都市百货" 了解南陵
微信咨询wanglf2r(不拉群 发广告者勿加)
0
0
2021年南陵计划生育补贴
南陵2021年度独生子女保健费名单
南陵2021年四员扶贫公益性岗位补
南陵2020年度农机购置补贴名单
南陵2021年农业补贴名单
南陵县2021年扶贫小额信贷
南陵2021年城乡居保财政代缴和另
2020年南陵创业担保贷款名单
热门评论