problema file not found

Stato
Discussione chiusa ad ulteriori risposte.

Xenex134

Nuovo Utente
33
3
Salve ragazzi sto cercando di fare un programmino dove vi è un metodo che, dato il nome di un file di caratteri contenente una stringa per ogni riga ed una stringa s, verifica se il file contiene una stringa di lunghezza superiore a quella della stringa s.
Il problema che riscontro è che non mi trova il file che gli passo ....ammesso che il resto dello script vada bene (?) .....potreste aiutarmi per favore??

Java:
package prova;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Prova {

    public static void main(String[] args) throws IOException  {
            String s = "abcdef";
            String nome ="C:/Users/Marco/Desktop/prova.txt";
            conteggio(nome,s);
    }
   
public static String conteggio(String nome, String s) throws IOException{

       int p = s.length(); // numero lettere stringa prova
       
       try( BufferedReader reader = new BufferedReader(new FileReader(nome))){
        String line = reader.readLine();
        while(line!=null) {
           // System.out.println(line);
            int z= line.length(); // memorizzo in una variabile il numero di lettere della stringa
           
            if(z>p){
           
            return "Trovata una stringa più lunga di 's' ";
            }

            line = reader.readLine();
        }
        reader.close();
         
       }catch (FileNotFoundException ex){
         System.out.println(ex);
    }
    catch (IOException ex){
        System.out.println(ex);
    }
    return "Non ho trovato nessuna stringa più lunga di 's' ";    
}
}
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,210
1,846
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Verifica bene dove si trova il file, perchè se la posizione è corretta, te lo deve trovare.
Non dovrebbe essere obbligatorio, ma Windows comunque usa per i percorsi il backslash, e non lo slash (ma non è comunque un problema secondo me).

Comunque non vedrai output, in quanto ignori il risultato del metodo che chiami: il metodo torna una stringa, ma non la memorizzi e non la stampi a video.
Dovresti fare tipo:

Java:
System.out.println(conteggio(nome,s));

Da un punto di vista concettuale comunque non è proprio esatto.
Visto che non ti interessa sapere di quanto è più lunga la stringa ma solo se viene trovata, puoi restituire un boolean, e dal main scegliere cosa stampare in output come messaggio.
 
  • Mi piace
Reazioni: Mursey
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!