ubuntu 下java写txt文件,编码问题
ubuntu下用java直接用FileWriter写入到一个txt文件中之后,由于默认编码的缘故,不能使用gedit打开该txt。
在将String写入到txt之前,先转换一下编码,就可以解决问题。
实例代码如下:
import java.io.FileWriter;
import java.io.IOException;
public class testcode {
public static void main(String[] args){
try {
String s = "naughty 是一个中国人";
FileWriter fw = new FileWriter("a.txt");
// String(byte[] bytes, String charsetName)
// 构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。
s = new String(s.getBytes("GB18030"),"GB18030");
// byte[] getBytes(String charsetName)
// 使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
fw.write(s);
fw.flush();
}
catch (IOException ex) {
ex.printStackTrace();
}
System.out.print("naufasdf");
}
}
对于读取文件的时候,由于不知道已经存在的txt文件的编码格式,可以用挨个尝试的方法来确定txt的编码格式
测试代码如下:
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt"),"GBk"));
String line = null;
line = bf.readLine();
while (line != null) {
System.out.println(line);
line = bf.readLine();
}
其中,GBK可以换成GB2312,UNICODE,UTF-8等编码格式来测试原来的txt的编码方式。
相关文档:
现在已经开始学习java一个月左右的时间了。以前对java有一些基本的了解, 在前几个月的时间当中,学习了.net的技术,对面向对象的设计有了更深的一个认识,在一个偶然的工作机会上,结交了一个朋友。他问我想在哪一方向发展,其实我也不清楚,他说要自己定好一个位,然后这样照着计划走下去 ......
java中的时间操作不外乎这四种情况:
1、获取当前时间
2、获取某个时间的某种格式
3、设置时间
4、时间的运算
好,下面就针对这四种情况,一个一个搞定。
一、获取当前时间
有两种方式可以获得,第一种,使用Date类。
j2SE的包里有两个Date类,一个是java.sql.Date,一个是java.util.Date
这里,要使用java.util. ......
创建一个类的实例时,
1.会为它以及它的所有父类的实例变量分配内存空间,如果分配空间成功,则所有实例变量都会初始化为默认值0、false、null
2.会递归调用父构造函数,但是暂不执行构造函数的语句;
3.对该父构造函数对应的类的实例变量赋值
4.执行父构造函数的其他语句
5.对于子类,执行2-4步骤 ......
1. 创建线程(继承Thread和实现runnable接口) class SubThread {
private class InnerThread extends Thread {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
super.run();
}
}
public Thread getThread() {
return new InnerThread();
}
}
......