生成一个中文名的文件(文件内容也是中文)保存到指定路径 import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.UnsupportedEncodingException;////获取当
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
////获取当前系统环境编码格式的属性属性(shell输出乱码 和 文件名乱码 与这个属性有关)
/**
* static String charsetName = System.getProperty("sun.jnu.encoding");//文件名是否乱码
* static String encoding = System.getProperty("file.encoding"); //文件内容是否乱码
* str = new String(str.getBytes(), charsetName);
* str = new String(str.getBytes(), encoding);
* str = new String(str.getBytes("utf-8"), charsetName);
*/
public class Bianma {
//获取当前系统环境编码格式的属性属性(shell输出乱码 和 文件名乱码 与这个属性有关)
static String charsetName = System.getProperty("sun.jnu.encoding");//文件名是否乱码
static String encoding = System.getProperty("file.encoding"); //文件内容是否乱码
//获取系统默认文件编码(此属性与文件格式有关)
//System.getProperty("file.encoding");
/**
* 将字符串转换为当前系统的编码
*
* @param str 输入的字符串
* @return 当前系统编码的字符串
*/
public static String GetCurrentlyEncodedString(String str) {
try {
str = new String(str.getBytes(), encoding);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
/**
* 输出文件
*
* @param outputString 输出文件的写入内容
* @param outputFile 输出文件
* @return 成功与否
* */
public static boolean writeFile(String outputString,File outputFile) {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(outputFile));
bw.write(new String(outputString.getBytes(), encoding));//文件内容中文不乱码
//bw.write(outputString);
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}finally {
try {
if(bw != null) {
bw.close();
}
}catch(IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println("charsetName="+charsetName);
System.out.println("encoding="+encoding);
String filenameLinux = "/home/weblogic/lbz/ly/文件啊我的.txt";//文件名
String filenameWindows = "C:\\Local\\bak/文件啊我的.txt";//文件名
String filestr = "我不要乱码";//文件内容
System.out.println(GetCurrentlyEncodedString("1=1=1=1我不要乱码"));
File outputfile = new File(new String(filenameLinux.getBytes("GBK"), charsetName));
writeFile(filestr, outputfile);
}
}
Bianma.java
package com.dmt;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
public class Bianma {
//获取当前系统环境编码格式的属性属性(shell输出乱码 和 文件名乱码 与这个属性有关)
static String charsetName = System.getProperty("sun.jnu.encoding");//文件名是否乱码
static String encoding = System.getProperty("file.encoding"); //文件内容是否乱码
//获取系统默认文件编码(此属性与文件格式有关)
//System.getProperty("file.encoding");
/**
* 将字符串转换为当前系统的编码
*
* @param str 输入的字符串
* @return 当前系统编码的字符串
*/
public static String GetCurrentlyEncodedString(String str) {
try {
str = new String(str.getBytes(), encoding);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
/**
* 输出文件
*
* @param outputString 输出文件的写入内容
* @param outputFile 输出文件
* @return 成功与否
* */
public static boolean writeFile(String outputString,File outputFile) {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(outputFile));
bw.write(new String(outputString.getBytes(), encoding));//文件内容中文不乱码
//bw.write(outputString);
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}finally {
try {
if(bw != null) {
bw.close();
}
}catch(IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println("charsetName="+charsetName);
System.out.println("encoding="+encoding);
String filenameLinux = "/home/weblogic/lbz/ly/文件啊我的.txt";//文件名
String filenameWindows = "C:\\Local\\bak/文件啊我的.txt";//文件名
String filestr = "我不要乱码";//文件内容
System.out.println(GetCurrentlyEncodedString("1=1=1=1我不要乱码"));
File outputfile = new File(new String(filenameLinux.getBytes("GBK"), charsetName));
writeFile(filestr, outputfile);
}
}
