पाठ 14 / 38

NIO.2 फ़ाइल I/O

Path और Files हेल्पर क्लास से आधुनिक तरीक़े से फ़ाइलें संभालें — readString, lines एक लेज़ी Stream के रूप में, walk, copy — सब try-with-resources के भीतर।

Path और Files

Path स्थान दर्शाता है; Files में readString, lines, walk, copy जैसे स्टैटिक ऑपरेशन हैं।

Path p = Path.of("data", "log.txt");
try (Stream<String> lines = Files.lines(p)) {
    long errors = lines.filter(l -> l.contains("ERROR")).count();
}

डायरेक्टरी ट्री पर walk करना

Files.walk पूरे उपवृक्ष पर एक लेज़ी Stream<Path> लौटाता है — सामान्य स्ट्रीम ऑपरेशन के साथ उपयोग करें, और हमेशा बंद करें क्योंकि यह डायरेक्टरी हैंडल खुला रखता है।

try (Stream<Path> paths = Files.walk(Path.of("src"))) {
    long javaFiles = paths
        .filter(p -> p.toString().endsWith(".java"))
        .count();
}