FileName=filechoose.getSelectedFile().getPath();//将文件名保存到FileName成员变量中。
File file = new File(FileName);
FileReader fi=new FileReader(file);//文件字符流
BufferedReader fin=new BufferedReader(fi);//字符流缓冲
fin.toString();
Temp=fin.readLine();
while(Temp!=null)
{
Total+=Temp;
Temp=fin.readLine();
}
[code=Java]
MyPanel.textarea.setText(Total);
panel.revalidate();//面板重绘FileName=filechoose.getSelectedFile().getPath();//将文件名保存到FileName成员变量中。 FileOutputStream fileoutput=new FileOutputStream(FileName);
String temp="";
DataOutputStream dout=new DataOutputStream(fileoutput);
dout.writeChars(MyPanel.textarea.getText());
现在问题是:可以将写的英文字符保存,但是用记事本打开文件可以看到每个英文字母前面都有一个空格,然后再将刚才保存得文件用程序打开,可以看到每个英文字母前面的空格变成了小方格;再一个就是不能打开中文文档,否则程序当死。 如果写入中文,那么变成乱码,读出也是乱码。
请教高手。
File file = new File(FileName);
FileReader fi=new FileReader(file);//文件字符流
BufferedReader fin=new BufferedReader(fi);//字符流缓冲
fin.toString();
Temp=fin.readLine();
while(Temp!=null)
{
Total+=Temp;
Temp=fin.readLine();
}
[code=Java]
MyPanel.textarea.setText(Total);
panel.revalidate();//面板重绘FileName=filechoose.getSelectedFile().getPath();//将文件名保存到FileName成员变量中。 FileOutputStream fileoutput=new FileOutputStream(FileName);
String temp="";
DataOutputStream dout=new DataOutputStream(fileoutput);
dout.writeChars(MyPanel.textarea.getText());
现在问题是:可以将写的英文字符保存,但是用记事本打开文件可以看到每个英文字母前面都有一个空格,然后再将刚才保存得文件用程序打开,可以看到每个英文字母前面的空格变成了小方格;再一个就是不能打开中文文档,否则程序当死。 如果写入中文,那么变成乱码,读出也是乱码。
请教高手。
dout.write(buffer ,0,buffer.length);
第一个问题:记住输入的空格在记事本中显示出来的就是小方格,没其他原因,如果有,你可以去问编写java的人。
第二个问题:是关于缓冲区和通道的,你在写入文件的时候仍然用的字符输出:
"FileOutputStream fileoutput=new FileOutputStream(FileName);
String temp="";
DataOutputStream dout=new DataOutputStream(fileoutput);
dout.writeChars(MyPanel.textarea.getText()); ”
---------------------------------------------------------
"FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
String temp = "...";
bw.write(temp);
bw.newLine();
"
而且麻烦在数据流结束的时候close()。
Writer writer = new OutputStreamWriter(fileoutput, "GBK");你可以用这个指定你输出文件的编码
是文件编码的问题,你改成GBK或则UTF-8就没事了.你现在的文件是ansi编码的 所以就会那样
以前遇到过 祝你早日搞定!!!!
FileName=filechoose.getSelectedFile().getPath();
FileOutputStream fileoutput=new FileOutputStream(FileName);
DataOutputStream dout=new DataOutputStream(fileoutput);
dout.writeUTF(MyPanel.textarea.getText());
dout.close();请教读取的怎么改呢?
FileName=filechoose.getSelectedFile().getPath();
File file = new File(FileName);
FileInputStream fin=new FileInputStream(file);
DataInputStream din=new DataInputStream(fin);
Total=din.readUTF();
din.close();谢谢各位的热心帮助。结贴,散分!