文本文件为"f.txt",内容如下:
--------------------------
001/m迈向 /v
002/m向 /v
--------------------------开始用以下代码读取:FileInputStream fs = new FileInputStream("F:\\f.txt");
int len=0;
String str="";
byte g[]=new byte[2];
while(fs.available()>0)
{
len=fs.read(g);
str=new String(g,0,len,"GB2312");
System.out.println(str);
}
但很显然,会失败..特来请教..
--------------------------
001/m迈向 /v
002/m向 /v
--------------------------开始用以下代码读取:FileInputStream fs = new FileInputStream("F:\\f.txt");
int len=0;
String str="";
byte g[]=new byte[2];
while(fs.available()>0)
{
len=fs.read(g);
str=new String(g,0,len,"GB2312");
System.out.println(str);
}
但很显然,会失败..特来请教..
// TODO code application logic here
InputStream is = null;
byte[] buffer = new byte[64];
String tmp = null;
try {
is = new FileInputStream("E://work//test//a.txt");
while(is.read(buffer)!=-1) {
tmp = new String(buffer);
System.out.print(tmp);
}
}
catch(Exception e) {
}
}
这样的做法是可以,我也想到过.不过我想,彻底解决中文编码问题.而不是你这样. 再说了.你那样做,在txt文件内容很长而且有中文的情况下有可能出错的. 例如你读入了前面64个字节输出来了,但第65个字节和第64个字节是组成一个汉字的,这样的话,你的做法就完蛋了.
BufferedReader in=new BufferedReader(new FileReader("f:\\f.txt"));
String str;
while((str=in.readLine())!=null){
System.out.println(str);
}
in.close();
}catch(IOException e){
}finally{
}///////////////////////////返回如下
001/m迈向 /v
002/m向 /v
{
JFileChooser chooser = new JFileChooser();
chooser.setFileFilter(new FileFilter()
{
public boolean accept(File f)
{
return f.getName().toLowerCase().endsWith(".java") || f.isDirectory();
}
public String getDescription()
{
return "Java Files";
}
});
int r1 = chooser.showSaveDialog(this);
if (r1 == JFileChooser.APPROVE_OPTION)
{
fileName = chooser.getSelectedFile().getPath();
try
{
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
writer.write(text.getText());
writer.close();
}
catch (IOException e)
{
ErrorDialog error=new ErrorDialog(this,"Saveas error","Save as the file error!");
error.show();
}
}
}
我以前写的,参考以下