javabuff,java我的世界指令
大家好,今天来为大家解答javabuff这个问题的一些问题点,包括java我的世界指令也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
javabuff怎么打不开了
遇到 javabuff打不开的情况,可能是由多种因素引起的。首先,较大的文件可能导致加载问题;其次,计算机的 Java性能不足,也可能导致无法顺畅运行。针对不同的问题,我们可以采取不同的解决策略:
1.如果遇到的是.jar文件加载异常,尝试通过命令提示符来运行,这样可以查看详细的错误信息,有助于定位问题所在。
2.对于路径设置问题,可以按照以下步骤操作:在"我的电脑"上右键点击,选择"属性",然后进入"高级"选项,接着找到"环境变量"。在"系统变量"区域,你需要设置三个变量:
新建一个名为"Java_Home"的变量,值为 JDK安装目录的绝对路径,例如:D:\Program Files\Java\jdk1.5.0_04\
如果已存在"Classpath",则编辑它,值设置为:.;%Java_Home%\lib(若原有内容,用分号隔开)
同样,如果"Path"变量已存在,编辑其值,添加%Java_Home%\bin;(若已有内容,用分号连接)
完成以上设置后,重启你的系统,javabuff应该就能正常打开了。如果问题依然存在,可能需要检查或更新你的 Java版本或系统配置。
求助代码。java编程
/*完全按照你的要求写的,可以的给采纳。有什么问题可以继续问我。*/
packageTest;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.text.NumberFormat;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Scanner;
/**
*文件保存格式为
*学号,姓名,班级,java成绩
*学号,姓名,班级,java成绩
*学号,姓名,班级,java成绩
*学号,姓名,班级,java成绩
*学号,姓名,班级,java成绩
*总分,平均分
*@authorAdministrator
*
*/
publicclassZhiDao{
publicstaticvoidmain(String[]args){
Filefile=newFile("javascore.text");
List<String[]>infos=null;
if(file.exists()){
System.out.println("已有信息:");
infos=getInfos(file);
System.out.println(printInfos(infos));
System.exit(0);
}else{
try{
file.createNewFile();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
//e.printStackTrace();
System.out.println("无法创建文件"+e.getMessage());
System.exit(1);
}
}
infos=newArrayList<String[]>();
Scannerscan=newScanner(System.in);
Stringinfo=null;
String[]strs=null;
intcount=0;
NumberFormatnf=NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);
floattotalScore=0;
while(count<5){
System.out.println("请输入第"+(count+1)+"名学生的基本信息[分别为学号、姓名、班级、java成绩,以英文逗号分隔]:");
info=scan.next().trim();
//判断成绩合法性
strs=info.split(",");
if(strs.length!=4){
System.out.println("输入信息不正确,请重新输入!");
continue;
}
try{
if(Float.valueOf(strs[3])>100){
System.out.println("成绩不能超过100分!");
continue;
}
}catch(NumberFormatExceptione){
//TODO:handleexception
System.out.println("成绩输入有误!"+e.getMessage());
continue;
}
totalScore+=Float.valueOf(strs[3]);
infos.add(strs);
count++;
}
infos.add(newString[]{nf.format(totalScore),nf.format(totalScore/5)});
System.out.println(printInfos(infos));
saveInfos(infos);
System.out.println("保存完成!");
}
publicstaticStringprintInfos(List<String[]>infos){
Stringstr="";
for(String[]ss:infos){
if(ss.length==2){
str+="总分:"+ss[0]+"
平均分:"+ss[1]+"
";
continue;
}
str+="****************************
"+"学号:"+ss[0]+"
"
+"姓名:"+ss[1]+"
"
+"班级:"+ss[2]+"
"
+"java成绩:"+ss[3]+"
";
}
returnstr;
}
publicstaticvoidsaveInfos(List<String[]>infos){
FileWriterwriter=null;
BufferedWriterbuffWriter=null;
try{
writer=newFileWriter(newFile("javascore.text"));
buffWriter=newBufferedWriter(writer);
Stringstr=null;
for(String[]ss:infos){
str=ss[0]+","+ss[1];
if(ss.length>2){
str+=","+ss[2]+","+ss[3];
}
buffWriter.write(str);
buffWriter.newLine();
}
buffWriter.flush();
}catch(Exceptione){
//TODO:handleexception
System.out.println("保存信息到文件出错:"+e.getMessage());
System.exit(1);
}finally{
if(writer!=null){
try{
writer.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
if(buffWriter!=null){
try{
buffWriter.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
publicstaticList<String[]>getInfos(Filef){
FileReaderreader=null;
BufferedReaderbuffReader=null;
List<String[]>infos=newArrayList<String[]>();
try{
reader=newFileReader(f);
buffReader=newBufferedReader(reader);
Stringstr=null;
while((str=buffReader.readLine())!=null){
infos.add(str.split(","));
}
}catch(Exceptione){
System.out.println("从文件中读取信息出错..."+e.getMessage());
System.exit(1);
//e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
if(buffReader!=null){
try{
buffReader.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
returninfos;
}
}
Java问题
这里直接把s赋值给readContent是有问题的,问题点如下:
假设文件有两行
第一行
第二行
则读取循环两次,第一次s赋值给readContent,readContent的值为"第一行",然后又循环,读取第二行,再次赋值,则readContent就会变成"第二行",第一行的值就丢失了;
这里StringBuff的作用是把读取到的内容连接起来成为一个字符串;
不过这里的例子的确有问题,问题却不在StringBuffer上,而在 s变量上,s中间两步是不必要的,循环内直接改成如下形式:
删除s.getBytes()和new String
另外,除了以上问题,来总结下这段代码的问题吧:
1、文件资源没有释放
2、在不涉及多线程的情况下,应使用StringBuilder类进行字符串拼接,而不是StringBuffer,因为StringBuilder更快(但是StringBuilder线程不安全,StringBuffer线程安全);
3、异常处理有问题,如果出现IO异常,就返回异常信息的字符串?那么如何区分这个字符串是发生了异常还是从文件中读取到的内容呢?这里不应该返回字符串,而是直接声明异常,有异常就向外抛,直到能处理的顶层程序处理。
基于以上几点,修改代码如下:
注意第27行,声明本方法可能抛出 IOException异常,稍后主程序将进行处理。另外注意第30行,创建InputStreamReader的时候指定了文件编码为utf8,以避免乱码,你的文件如果存储的是其他编码类型,则会出现乱码。
调用代码如下:
getContent函数调用主程序
注意18行和21行,是分别处理正常情况和异常情况,当读取异常时,将会调用第21行,打印异常信息;
整体代码如下:
全部代码
接下来我们看看代码执行情况。
1、当我们要读的文件不存在时,执行结果如下:
我们要读的文件不存在时,抛出异常
看,当文件不存在时,抛出异常,并由异常处理程序捕获和打印,你可以看到具体哪一行代码出错[getContent(App.java:29)],说明在App.java文件中的getContent方法,文件的29行出错。
2、那么正常情况下呢?当然是输出文件内容了,我们放一个有如下内容的文件在"D:\\file.txt"处:
要读取的文件内容
执行结果如下:
正常情况下,输出文件内容
最后,我不知道你看的是什么书,是不是课本,但感觉质量不高,这里给你推荐几本,可以买来看看:
1、Head First java
2、菜鸟教程 Java
3、最权威的,自然是The Java® Language Specificati了
祝你学习之路顺利
文章到此结束,如果本次分享的javabuff和java我的世界指令的问题解决了您的问题,那么我们由衷的感到高兴!