1.根據(jù)你輸出的語(yǔ)句:首行為文件名,"+"其余內(nèi)容為文件內(nèi)容,以空行結(jié)尾。按Ctrl+c組合鍵結(jié)束輸入",你是想按Ctrl+c就退出程序結(jié)束輸入,但是你的程序并沒(méi)有定義當(dāng)按下Ctrl+c鍵的響應(yīng)。所以你一直輸入內(nèi)容是沒(méi)辦法結(jié)束程序的。你只有手動(dòng)停止編譯器停止程序。
成都創(chuàng)新互聯(lián)專(zhuān)注于大悟企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。大悟網(wǎng)站建設(shè)公司,為大悟等地區(qū)提供建站服務(wù)。全流程按需策劃,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
2.你沒(méi)有指定fileName文件的類(lèi)型,也沒(méi)生成位置,那么在你對(duì)應(yīng)的工程路徑下生成一個(gè)缺省的文件,名字為你第一次輸入的fileName,內(nèi)容為第二次輸入的內(nèi)容,你可以用記事本打開(kāi),看到輸入的內(nèi)容。
程序沒(méi)有錯(cuò),只是沒(méi)有完成你想要的功能而已!
可以使用java的Scanner類(lèi),常見(jiàn)的是用nextInt()輸入一個(gè)整數(shù),用next()輸入一個(gè)字符串,下面是一個(gè)小的演示程序。
public?class?InputTest
{
public?static?void?main(String[]?args)
{
Scanner?input?=?new?Scanner(System.in);
System.out.println(input.nextInt());
System.out.println(input.next());
input.close();
}
}
程序開(kāi)發(fā)過(guò)程中,需要從鍵盤(pán)獲取輸入值是常有的事,但Java它偏偏就沒(méi)有像c語(yǔ)言給我們提供的scanf(),C++給我們提供的cin()獲取鍵盤(pán)輸入值的現(xiàn)成函數(shù)!Java沒(méi)有提供這樣的函數(shù)也不代表遇到這種情況我們就束手無(wú)策,請(qǐng)你看以下三種解決方法吧:
以下將列出幾種方法:
方法一:從控制臺(tái)接收一個(gè)字符,然后將其打印出來(lái)
public static void main(String [] args) throws IOException{
System.out.print(“Enter a Char:”);
char i = (char) System.in.read();
System.out.println(“your char is :”+i);
}
}
雖然此方式實(shí)現(xiàn)了從鍵盤(pán)獲取輸入的字符,但是System.out.read()只能針對(duì)一個(gè)字符的獲取,同時(shí),獲取進(jìn)來(lái)的變量的類(lèi)型只能是char,當(dāng)我們輸入一個(gè)數(shù)字,希望得到的也是一個(gè)整型變量的時(shí)候,我們還得修改其中的變量類(lèi)型,這樣就顯得比較麻煩。
方法二:從控制臺(tái)接收一個(gè)字符串,然后將其打印出來(lái)。在這個(gè)題目中,我們需要用到BufferedReader類(lèi)和InputStreamReader類(lèi)
public static void main(String [] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
System.out.println(“Enter your value:”);
str = br.readLine();
System.out.println(“your value is :”+str);
}
這樣我們就能獲取我們輸入的字符串。
方法三:這種方法我認(rèn)為是最簡(jiǎn)單,最強(qiáng)大的,就是用Scanner類(lèi)
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“請(qǐng)輸入你的姓名:”);
String name = sc.nextLine();
System.out.println(“請(qǐng)輸入你的年齡:”);
int age = sc.nextInt();
System.out.println(“請(qǐng)輸入你的工資:”);
float salary = sc.nextFloat();
System.out.println(“你的信息如下:”);
System.out.println(“姓名:”+name+“\n”+“年齡:”+age+“\n”+“工資:”+salary);
}
你好,
假設(shè)是輸入整數(shù):
Scanner san = new Scanner(System.in); //聲明輸入變量san并初始化;
int i = san.nextInt(); //將輸入的變量san的值賦給整數(shù)變量 i ;
System.out.println(i); //輸出i 。
就是利用Scanner這個(gè)類(lèi)。
希望可以幫助到你 ~O(∩_∩)O~
step1:新建一個(gè)演示類(lèi)demo
step2:導(dǎo)入 包文件,在包名下,類(lèi)名之上輸入如下代碼。
import ?java.util.Scanner;
step3:在類(lèi)中的代碼如下:
public static void main(String[] args) { ? ?//創(chuàng)建一個(gè)鍵盤(pán)錄入對(duì)象input ? ?Scanner input = new Scanner(System.in); ? ?System.out.println("please input “學(xué)生姓名”"); ? ?String studentName = input.next().intern(); ? ?System.out.println("please input “科目名稱(chēng)”"); ? ?String subject = input.next().intern(); ? ?System.out.println("please input“科目成績(jī)”"); ? ?double result = input.nextDouble(); ? ?//調(diào)用Student類(lèi)的方法 ? ?Student stu = new Student(); ? ?stu.setStudentName(studentName); ? ?stu.setSubject(subject); ? ?stu.setResult(result); ? ?Student.getInformation(stu);}
step4:新建一個(gè)Student類(lèi),設(shè)置類(lèi)的各個(gè)成員變量,創(chuàng)建一個(gè)學(xué)生個(gè)人信息的方法。如下:
public class Student { ? ?private String studentName; ? ?private String subject; ? ?private double result; ? ?private String eveluate; ? ?//創(chuàng)建一個(gè)信息輸出方法 ? ?public static void getInformation(Student studentInformation) { ? ? ? ?System.out.println("學(xué)生個(gè)人信息"); ? ? ? ?//獲取學(xué)生姓名返回的成員變量值 ? ? ? ?System.out.println("姓名:" + studentInformation.getStudentName()); ? ? ? ?//獲取科目成員變量的返回值 ? ? ? ?System.out.println("科目:" + studentInformation.getSubject()); ? ? ? ?//獲取成績(jī)成員變量的返回值 ? ? ? ?System.out.println("成績(jī):" + studentInformation.getResult()); ? ? ? ?//獲取等級(jí)成員變量的返回值 ? ? ? ?System.out.println("等級(jí):" + studentInformation.getEveluate()); ? ?} ? ?//使用getXxx()和setXxx()對(duì)各個(gè)私有成員變量進(jìn)行限定 ? ?//對(duì)學(xué)生姓名進(jìn)行輸入和輸出的設(shè)置 ? ?public String getStudentName() { ? ? ? ?return this.studentName; ? ?} ? ?public void setStudentName(String studentName) { ? ? ? ?this.studentName = studentName; ? ?} ? ?//對(duì)成績(jī)等級(jí)變量設(shè)置 ? ?public String getEveluate() { ? ? ? ?return this.eveluate; ? ?} ? ?public void setEveluate(String eveluate) { ? ? ? ?this.eveluate = eveluate; ? ?} ? ? //對(duì)科目成員變量進(jìn)行設(shè)置 ? ?public String getSubject() { ? ? ? ?return this.subject; ? ?} ? ?public void setSubject(String subject) { ? ? ? ?this.subject = subject; ? ?} ? ?public double getResult() { ? ? ? ?return this.result; ? ?} ? ?//對(duì)成績(jī)進(jìn)行等級(jí)劃分 ? ?public void setResult(double result) { ? ? ? ?if (result = 95) { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "A+"; ? ? ? ?} else if (result 90 result = 85) { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "A"; ? ? ? ?} else if (result = 80 result 85) { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "B+"; ? ? ? ?} else if (result = 75 result 80) { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "B"; ? ? ? ?} else if (result = 70 result 75) { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "C+"; ? ? ? ?} else if (result = 60 result 70) { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "C"; ? ? ? ?} else if (result = 50 result 60) { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "D"; ? ? ? ?} else { ? ? ? ? ? ?this.result = result; ? ? ? ? ? ?this.eveluate = "E"; ? ? ? ?} ? ?}}
運(yùn)行結(jié)果1:
please input “學(xué)生姓名”
李小明
please input “科目名稱(chēng)”
數(shù)學(xué)
please input“科目成績(jī)”
98
學(xué)生個(gè)人信息
姓名:李小明
科目:數(shù)學(xué)
成績(jī):98.0
等級(jí):A+
運(yùn)行結(jié)果2:
please input “學(xué)生姓名”
王強(qiáng)
please input “科目名稱(chēng)”
英語(yǔ)
please input“科目成績(jī)”
52
學(xué)生個(gè)人信息
姓名:王強(qiáng)
科目:英語(yǔ)
成績(jī):52.0
等級(jí):D