public class Test {
public static void main(String[] args) {
Path dir = Paths.get("D:\\company");
//insert code here. Line ***
for (Path entry : stream)
{
System.out.println(entry.getFileName());
}
} catch (IOException
e) {
System.err.println("Caught IOException: " + e.getMessage());
}
}
Which two try statements, when inserted at line ***, enable you to print files with the extensions.java,
.htm, and .jar.Which two try statements, when inserted at line ***, enable you to print files with the extensions.java,
A.
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir,”*.{java, htm,jar}”)){
B.
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir,”*. [java, htm, jar]“)) {
C.
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir,”*.{java*, htm*, jar*}”)) {
D.
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir,”**.{java, htm, jar}”)) {
La risposta è A e D.
Infatti sia A che D indicano di prendere tutti i file che terminano in java oppure htm oppure jar.
La B non funziona perchè oltre allo spazio tra l'asterisco e le parentesi (probabilmente un errore nella domanda) le parentesi sono quadre. Le parentesi quadre indicano una collezione di caratteri.
[java, htm, jar] significa : Prendi tutti i file che contengano almeno una j oppure a oppure v oppure a oppure uno spazio oppure h ecc fino alla r di jar.
La C invece prende tutti anche i file la cui estensione inizia con il termina specificato. Ad esempio .java ma anche .javadoc , a causa dell'asterisco finale.
Riferimenti
http://docs.oracle.com/javase/tutorial/essential/io/dirs.html
Listing a Directory's Contents
Filtering a Directory Listing By Using Globbing
http://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob
Argomento glob
Files.newDirectoryStream accetta un argomento glob. La sintassi glob serve a specificare un comportamento dei percorsi.
Nei nostri casi:
Un asterisco * significa tutto, dal lato dell'asterisco.
Due asterischi ** significa tutto, dal lato degli asterischi ma penetra anche dentro le sottocartelle.
Ad esempio :
*.html prende tutti i file che finiscono in .html
Le parentesi graffe indicano una collezione, e quindi una sorta di OR.
Ad esempio :
◦{sun,moon,stars} significa : sun oppure moon oppure star.
Le parentesi quadre indicano una collezione di singoli caratteri:
[aeiou] significa : prendi tutti file che abbiamo almeno una vocale minuscola.
Nessun commento:
Posta un commento