1.根據(jù)你輸出的語句:首行為文件名,"+"其余內(nèi)容為文件內(nèi)容,以空行結(jié)尾。按Ctrl+c組合鍵結(jié)束輸入",你是想按Ctrl+c就退出程序結(jié)束輸入,但是你的程序并沒有定義當(dāng)按下Ctrl+c鍵的響應(yīng)。所以你一直輸入內(nèi)容是沒辦法結(jié)束程序的。你只有手動(dòng)停止編譯器停止程序。
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的兩當(dāng)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
2.你沒有指定fileName文件的類型,也沒生成位置,那么在你對(duì)應(yīng)的工程路徑下生成一個(gè)缺省的文件,名字為你第一次輸入的fileName,內(nèi)容為第二次輸入的內(nèi)容,你可以用記事本打開,看到輸入的內(nèi)容。
程序沒有錯(cuò),只是沒有完成你想要的功能而已!
如果你是想用純java寫的話,那么你需要一個(gè)java自帶的控件叫swing,畢竟你不能讓人家在你的控制臺(tái)上輸入,下面是一個(gè)小例子,這可能不完全是你想要的,我給你提供的只是一個(gè)思路
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.TextField;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
/**
* @author Administrator
*
*/
public class LoginSystem {
/**
* @param args
* @param flowLayout?
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f=new JFrame();
f.setTitle("系統(tǒng)登錄界面");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
f.setVisible(true);
//設(shè)置窗口的大小和位置
f.setSize(400,400);
f.setLocation(200,200);
Container con=f.getContentPane();//生成一個(gè)容器
con.setLayout(new GridLayout(7,1));
JPanel pan1=new JPanel();//生成一個(gè)新的版面
JLabel title=new JLabel("歡迎登陸本系統(tǒng)");
title.setFont(new Font("宋體",Font.BOLD, 20));
pan1.add(title);
con.add(pan1);
//最上面的登陸文字
JPanel pan2=new JPanel();//生成一個(gè)新的版面
JLabel name=new JLabel("用戶名");
pan2.add(name);
TextField tf_name=new TextField(20);
tf_name.setText("請(qǐng)?jiān)诖颂庉斎胗脩裘?);
pan2.add(tf_name);
con.add(pan2);
//用戶名及其文本框放置在第二個(gè)版面上
JPanel pan3=new JPanel();//生成一個(gè)新的版面
JLabel pass = new JLabel("密碼");
pan3.add(pass);
JPasswordField password=new JPasswordField(15);
password.setEchoChar('*');
pan3.add(password);
con.add(pan3);
//密碼及其密碼域放在第三個(gè)版面上
JPanel pan4 = new JPanel();
JButton b_log=new JButton("登陸");
pan4.add(b_log);
JButton b_exit=new JButton("退出");
pan4.add(b_exit);?
con.add(pan4);
//登陸和退出這兩個(gè)按鈕放在第四個(gè)版面上
JPanel pan5 = new JPanel();
con.add(pan5);
JPanel pan6 = new JPanel();
con.add(pan6);
JPanel pan7 = new JPanel();
con.add(pan7);
//空白版面
}
}
現(xiàn)在普遍情況都是web項(xiàng)目,前端和后端的結(jié)合,前端可以用java提供的jsp,html(css,js),用他們加上后臺(tái)代碼,可以幫助你實(shí)現(xiàn)前端輸入數(shù)據(jù),后端處理數(shù)據(jù),返回處理結(jié)果,渲染頁面,這個(gè)太復(fù)雜了,不是一兩句話說的清楚的,具體的你可以自行百度。
以上,就是這樣
編好了,你自己運(yùn)行下:
import java.util.Random;
import java.util.Scanner;
public class Test
{
public static Random r = new Random();
public static void printMenu()
{
System.out.println("(1) play another round");
System.out.println("(2) exit the game");
System.out.print("Selection:");
}
public static void main(String[] args) throws Exception
{
String content = null;
Scanner scan = new Scanner(System.in);
while(true)
{
printMenu();
content = scan.nextLine();
System.out.println();
//輸入內(nèi)容是2,則退出程序
if(content.equals("2")) break;
if(content.equals("1"))
{
System.out.print("Text to Match: ");
int count = r.nextInt(50) + 1;
char[] letters = new char[count];
for(int i=0;icount;i++)
{
letters[i] = (char)(r.nextInt(26) + 97);
System.out.print(letters[i]);
}
System.out.print("\n ");
long startTime = System.currentTimeMillis();
int correctCount = 0;
content = scan.nextLine();
for(int i=0;icount;i++)
{
if(content.charAt(i) == letters[i])
correctCount++;
}
long endTime = System.currentTimeMillis();
int time = (int)((endTime - startTime) / 1000);
if(correctCount == 0)
System.out.println("INCORRECTLY TYPED, YOU GET A SPEED OF 0!");
else
{
System.out.println("共花了" + time + "秒,正確率為:" + ((int)(((double)correctCount/count))*100) + "%");
}
}
System.out.println();
}
}
}
用 JavaSwing 編寫程序,設(shè)置n個(gè)button,A,B,C 。
然后每個(gè)加 keyListener(鍵盤監(jiān)聽),在該方法里實(shí)現(xiàn)你要的功能即可
如果不需要顯示模擬鍵,只需要在一個(gè)顯示 JText 上 加keyListener 即可。
原理是一樣的。