我做了一個簡單的程序: 使用文件(讀寫) 終端類擴展 但程序不起作用。 Netbeans顯示沒有錯誤,但是當我運行它時......某種錯誤顯示出來.....以及我無法理解我的錯誤在哪裏(我認爲是合乎邏輯的錯誤)。不能找到我的邏輯錯誤
下面是簡單的程序:
package detyre_kursi;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Detyre_kursi {
public static void main(String[] args) {
LlogariBankare llogaria1 = new LlogariBankare("aaa", 1000);
llogaria1.Balanca();
}
}
class LlogariBankare {
//variablat e instances
private String id;
private int nrLlogarise;
private int vitiHapjes;
private double balanca;
static int nrTranasksioneve = 0;
public LlogariBankare() {
System.out.println("Ju keni harruar te vendosi id dhe nrLlogarise");
}
public LlogariBankare(String id, int nrLlogarise) {
this.id = id;
this.nrLlogarise = nrLlogarise;
vitiHapjes = 0;
balanca = 0;
Lexim(this.id, this.nrLlogarise);
}
public double getBalanca() {
return balanca;
}
public int getVitiHapjes() {
return vitiHapjes;
}
private void Lexim(String s, int llog) {
try {
File file = new File("c:\\java\\balanca.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
if (scanner.next().equals(s) && scanner.nextInt() == llog) {
vitiHapjes = scanner.nextInt();
balanca = scanner.nextDouble();
}
}
} catch (IOException e) {
e.getMessage();
}
}
void Balanca() {
try{
File file = new File("c:\\java\\test.txt");
PrintWriter out = new PrintWriter(file);
out.println(this.balanca);
} catch (IOException e) {
e.getMessage();
}
System.out.println(this.id + " , ju keni " + this.balanca +
" lek ne llogarine tuaj te krijuar ne vitin " + vitiHapjes +
" dhe keni kryer " + nrTranasksioneve + " transaksione gjithsej");
}
void Terheqe(double terheqe) {
this.balanca -= terheqe;
System.out.println("Ju sapo keni terhequr " + terheqe + " nga llogaria juaj");
nrTranasksioneve++;
}
void Depozitim(double depozitim) {
this.balanca += depozitim;
System.out.println("Ju sapo keni depozituar " + depozitim + " nga llogaria juaj");
nrTranasksioneve++;
}
}
class Interesi extends LlogariBankare {
int vitiTanishem = 2012;
double interesi = 0;
int diferencaViteve = vitiTanishem - getVitiHapjes();
Interesi(String id, int nrLlogarise) {
super(id,nrLlogarise);
}
void gjejInteresisn() {
interesi = getBalanca() + getBalanca() * diferencaViteve * 0.01;
}
}
文件balanca有這一行是: AAA 1000 1990年34000
在貧困的話,這是一個銀行的一些簡單的版本。
您從文件中讀取餘額,並使用Terheqe()和Depozitim()作爲餘額並將餘額寫入 。 您可以使用Balance()來查看您有多少個$。當我運行它,這個錯誤顯示:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at detyre_kursi.LlogariBankare.Lexim(Detyre_kursi.java:57)
at detyre_kursi.LlogariBankare.<init>(Detyre_kursi.java:40)
at detyre_kursi.Detyre_kursi.main(Detyre_kursi.java:11)
Java結果:1個
我需要.next,所以我可以比較用戶的名稱,當我創建對象的用戶在我的文件中的名稱,我檢查了文件,它都一切ok,因爲我的文件只有這一行: aaa 1000 1990 34000 –
我確信這是因爲.nextInt()調用。你爲什麼不嘗試將值賦給兩個局部變量,String s = scanner.next()等,並在之前將它們打印出來?作爲測試。 – kosa
iv嘗試了你所說的所有事情,但沒有工作,然後.....挫敗我刪除了該文件,並作出另一個.......它工作Thnks所有,但答案去思考,因爲它已經回答了幾次對我來說 –