请前辈们解答,小子我菜鸟一枚,虚心求教!

qq408515668 2013-04-07 10:53:28
先附上我写的代码:
public class File2 {
public static void main(String[] args) throws Exception{
FileOutputStream f=new FileOutputStream("J:\\资料\\JAVA资料\\IO\\007.txt");
for(int i='A'; i<='Z'; i++){
f.write(i);
f.write(' ');


}

f.flush();
f.close();
}
}

public class File3{
public static void main(String[] args) throws Exception{

FileOutputStream f=new FileOutputStream("J:\\资料\\JAVA资料\\IO\\007.txt",true);
//OutputStreamWriter fw=new OutputStreamWriter(f);
//BufferedWriter bw=new BufferedWriter(fw);
for(int i='a'; i<='z'; i++){
f.write(i);
f.write(' ');
}


f.flush();
f.close();


}

}
程序File2是向文件写入大写字母,File3是追加小写字母。可是运行完以上程序之后,就会出现一片乱码...我想知道为什么这样会出现乱码。求前辈们赐教!
...全文
448 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝴蝶Poj 2013-06-03
  • 打赏
  • 举报
回复
qq408515668 2013-04-19
  • 打赏
  • 举报
回复
谢谢各位前辈的精心回答!应该是记事本本身的BUG,因为我用写字板打开那个文件显示完全没有问题的!这证明代码应该没有错~~~实在没想到这个点,一直以为是我代码错了。再次谢谢各位前辈!
kiyoki 2013-04-12
  • 打赏
  • 举报
回复
我觉得代码本身没什么问题,只是 M$ 自带的记事本存在bug 可以用其他文本编辑工具试试,甚至用浏览器打开,是一切正常的
huntor 2013-04-11
  • 打赏
  • 举报
回复
写文本文件一般使用 PrintWriter类
书断华 2013-04-09
  • 打赏
  • 举报
回复
你可以去看看API 他上面有说把一个指定的字节写入文件流,也就是说他会处理一个字节类型的数据(byte)而你的传进去的是一个char类型他们所占的byte是不一样的(就是他们的所占的字节不一样)那么这个方法可能就会把你传过来的参数强制转成byte类型这样就可能丢失一些东西,那么就会出现乱码了,你可以先把他转成byte数组在用那个传一个byte数组的方法去写,试试。
老紫竹 2013-04-09
  • 打赏
  • 举报
回复
单引号等同于int,写入字母应该用双引号。 或者你写入前,将char转为String.
诗错亦染瑾 2013-04-09
  • 打赏
  • 举报
回复
引用 5 楼 qq408515668 的回复:
我还发现,用BufferedReader还可以把那个乱码文件都读出来~~~~读出来的是正常的内容。
对于JVM来说 从文件读出来二进制转化你所想要的内容,但是它存入也是按照二进制存入的 所以 你要想存字母就存string类型的吧 用valueof()方法转化成字符再存入 你试试看
tsw84996925 2013-04-09
  • 打赏
  • 举报
回复
是不是f.write(' ');出问题啊!
qq408515668 2013-04-09
  • 打赏
  • 举报
回复
我还发现,用BufferedReader还可以把那个乱码文件都读出来~~~~读出来的是正常的内容。
qq408515668 2013-04-09
  • 打赏
  • 举报
回复
前辈,我用FileWriter写也还是一样呀!我发现只要我把两个f.write(' ');注释掉。或者注释掉其中一个,然后就不会出现乱码,但是只要两个都出现就会出现乱码。
huntor 2013-04-07
  • 打赏
  • 举报
回复
写的不是文本,而是二进制文件。
zhUfaNxiao 2013-04-07
  • 打赏
  • 举报
回复
klogle 2013-04-07
  • 打赏
  • 举报
回复
这样写: BufferedReader f=new BufferedReader(new InputStreamReader(new FileInputStream("J:\\资料\\JAVA资料\\IO\\007.txt",true),"UTF-8"));
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧