有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

期待EOF的java发现“异常”

我是java新手。我一直在尝试为学校编写一些代码,这些代码只是程序的一部分,它可以工作,但checkstyle有一个问题。有人知道怎么了吗?我把它和*******匹配起来了。谢谢

public void vypis() {
    System.out.println("Vypisujem celý soubor:");
    try (BufferedReader br = new BufferedReader(new FileReader("subor.txt"))) {
        String s;
        Exception e = new Exception(); *****************************
        while((s = br.readLine()) != null) {
            System.out.println(s);
        }
    } catch (Exception e) {
        System.err.println("Chyba pri čítaní súboru.");
    }
}




import java.util.Scanner;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.FileOutputStream;
/**
 * 
 * @author Jakub Jurina
 * @version 2016
 */
public class Sklad {
    ArrayList<Tovar>potSklad = new ArrayList<Tovar>(); // vytvori nový arraylist s názvom potSklad

    String aNazov;
    String aVaha;
    String aKrajina;
    String aCena;
    /** 
     * metóda pomocov filereadera načíta súbor ktorý následne zapíše pomocov readLine do arraylistu 
     */  
    public void nacitajZoSuboru() throws IOException {
        FileReader fr = new FileReader("subor.txt");
        BufferedReader in = new BufferedReader(fr);
        String riadok, pom;
        int i = 0;
        System.out.println("\f");

        while((riadok = in.readLine()) != null) {  
            String polozka[] = riadok.split("/");
            String aNazov = polozka[0].toLowerCase();
            String aVaha = polozka[1].toLowerCase();
            String aKrajina = polozka[2].toLowerCase();
            String aCena = polozka[3].toLowerCase();

            i++;
            pridajPolozku(aNazov, aVaha, aKrajina, aCena);
        }
        fr.close();

    }

    /** metóda má ako návratovú hodnotu dlžku arraylistu (počet riadkov v arrayliste) 
     *
     * @return dlzku arraylistu
     */
    public int getSkladDlzka() {
        return potSklad.size();
    }

    /** 
     * metóda pridá položku do arraylistu ktorú načítame v metóde nacitajZoSuboru(). 
     */
    public void pridajPolozku(String paNazov, String paVaha, String paKrajina, String paCena){
        Tovar a1= new Tovar(paNazov, paVaha, paKrajina, paCena);
        potSklad.add(a1);
    }

    /** 
     * metóda pomocov scanneru pridáva do arraylistu položku ktorú postupne zadávame z klávesnice,
     * po zadaní všetkých atribútov vypíše čo sme zadali a v arrayliste ich oddelí "/" 
     */
    public void PridajDoDatabazy() throws IOException {
        String novyRiadok, aNazov, aVaha, aKrajina, aCena;
        Scanner vstup = new Scanner (System.in);
        System.out.println("\fPridať do zoznamu:");
        System.out.println("\nZadajte náz tovaru:");
        aNazov = vstup.nextLine();
        System.out.println("\nZadajte váhu tovaru(kg):");
        aVaha = vstup.nextLine();
        System.out.println("\nZadajte krajinu pôvodu:");
        aKrajina = vstup.nextLine();
        System.out.println("\nZadajte cenu tovaru(€):");
        aCena = vstup.nextLine();

        System.out.println("\f\nZadali ste : \n" + aNazov + ", " + aVaha + ", " + aKrajina + ", " + aCena + ".");
        novyRiadok = (aNazov + "/" + aVaha + "/" + aKrajina + "/" + aCena + "/");

        PrintWriter zapisdodatabazy = new PrintWriter(new FileOutputStream("subor.txt",true));
        zapisdodatabazy.print(novyRiadok);
        zapisdodatabazy.println();
        zapisdodatabazy.close();
        pridajPolozku(aNazov, aVaha, aKrajina, aCena);
    }

    /** 
     * medóda prepisuje celý arraylist do súboru, postupne po riadku prejde cely arraylist a nasledne prepíše do suboru. 
     */
    public void AktualizujSubor() throws IOException {
        File frM = new File("subor.txt");
        FileWriter fw = new FileWriter("subor.txt");
        int a = getSkladDlzka();
        for (int i=0; i<a; i++) {
            String novyRiadok = (potSklad.get(i).getNazov() + "/" + potSklad.get(i).getVaha() + "/" + potSklad.get(i).getKrajina() + "/" + potSklad.get(i).getCena());
            PrintWriter zapisdoskladu = new PrintWriter(new FileOutputStream("subor.txt",true));
            zapisdoskladu.print(novyRiadok);
            zapisdoskladu.println();
            zapisdoskladu.close();
        }
        fw.close();
    }

    /** 
     * metóda prečíta bufferedreaderom súbor a cyklus while príkazom readline prečíta riadok a vypíše ho 
     */  
    public void vypis() {
        System.out.println("Vypisujem celý soubor:");
        try (BufferedReader br = new BufferedReader(new FileReader("subor.txt"))) {
            String s = br.readLine();
            //Exception e = new Exception();
            while((s = br.readLine()) != null) {
                System.out.println(s);
            }
        } catch (Exception e) {
            System.err.println("Chyba pri čítaní súboru.");
        }    
    }

    /** 
     * metóda vyhľadá v arrayliste riadok podľa zadanej ceny a zoradí cenu od najlacnejšieho tovaru.
     */
    public void zoradPodlaCenyVzostupne() {
        boolean Zmena;
        do{
            Zmena = false;
            for (int i=0; i<potSklad.size()-1; i++) {
                if (potSklad.get(i).getCena().compareToIgnoreCase(potSklad.get(i+1).getCena())>0) {
                    Tovar potravina = potSklad.get(i);
                    potSklad.set(i, potSklad.get(i+1));
                    potSklad.set(i+1, potravina);
                    Zmena=true;
                }
            }
        } while (Zmena);
    }

    /** 
     * metóda vyhľadá v arrayliste riadok podľa zadanej ceny a zoradí cenu od najdrahšieho tovaru. 
     */
    public void zoradPodlaCenyZostupne() {
        boolean Zmena;
        do{
            Zmena = false;
            for (int i=0; i<potSklad.size()-1; i++) {
                if (potSklad.get(i).getCena().compareToIgnoreCase(potSklad.get(i+1).getCena())<0) {
                    Tovar potravina = potSklad.get(i);
                    potSklad.set(i, potSklad.get(i+1));
                    potSklad.set(i+1, potravina);
                    Zmena=true;
                }
            }
        } while (Zmena);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    不要创建异常,只需捕获它

    您必须捕获或抛出异常,但不要创建它们