Java >> Java tutorial >  >> Java

Java Nio Opret Directory Eksempel

Java NIO (dvs. ny I/O) er en interessant fil-input-output-mekanisme introduceret i Java 5 og giver den anderledes måde at arbejde med input-output-operationerne på end standard input-output API'er. Java NIO understøtter en bufferorienteret, kanalbaseret tilgang til I/O-operationerne, og med introduktionen af ​​Java 7 er NIO-systemet udvidet og giver derved den forbedrede understøttelse af filsystemfunktionerne og filhåndteringsmekanismen. I denne vejledning vil vi forsøge at få et overblik over, hvad Java NIO er, og et eksempel på en kode for oprettelse af mappe-operationen.




1. Introduktion

Java NIO blev udviklet for at tillade Java-programmører at implementere højhastigheds input-output-operationer uden at bruge den tilpassede native kode. NIO flytter de tidskrævende I/O-aktiviteter som påfyldning, nemlig og dræning af buffere osv. tilbage i operativsystemet, hvilket muliggør den store stigning i driftshastigheden.

Java NIO består af følgende kernekomponenter:

  • Kanal og buffere :I standard, I/O API bruges tegnstrømmene og bytestrømmene, men i NIO arbejder udviklere med kanalerne og bufferne. I dette tilfælde skrives dataene altid fra en buffer til en kanal og læses fra en kanal til en buffer

    Fig. 1:Kanal &buffere

  • Vælgere :Det er et objekt, der kan bruges til at overvåge de flere kanaler for hændelser som ankomne data, forbindelsen åbnet osv. Således kan en enkelt tråd overvåge de flere kanaler for dataene

    Fig. 2:En tråd bruger en vælger til at håndtere 3 kanaler

  • I/O-ikke-blokerende :Her returnerer applikationen straks de tilgængelige data, og applikationen bør have en poolingsmekanisme for at finde ud af, hvornår flere data er tilgængelige

Bemærk, Java NIO har flere komponenter og klasser, men Channel, Buffer og Selector bruges som kernen i API'en.

1.1 Java I/O vs. NIO

  • Den første hovedforskel mellem standard IO og NIO er, at standard IO er strømorienteret, og NIO er bufferorienteret. Bufferorienterede operationer giver fleksibilitet i håndteringen af ​​data, og i bufferorienteret NIO skal dataene først læses ind i en buffer, og derefter gøres de tilgængelige for behandling. Så vi kan bevæge os frem og tilbage i bufferen. Men i tilfælde af vandløb er det ikke muligt
  • Den anden hovedforskel er de blokerende og de ikke-blokerende IO-operationer. I tilfælde af streams vil en tråd blive blokeret, indtil den fuldfører IO-operationen. Hvor NIO'en tillader de ikke-blokerende operationer. Hvis dataene ikke er tilgængelige for IO-operationer, kan tråden gøre noget andet, og den behøver ikke forblive i låst tilstand. Med kanaler og vælgere kan en enkelt tråd administrere de flere tråde og de parallelle IO-operationer

Åbn nu Eclipse IDE og lad os se, hvordan man implementerer en simpel filtilføjelse med Java Nio-pakken!

2. Java Nio Opret bibliotekseksempel

2.1 Anvendte værktøjer

Vi bruger Eclipse Kepler SR2, JDK 8 og Maven. Når det er sagt, har vi testet koden mod JDK 1.7, og det fungerer godt.

2.2 Projektstruktur

Lad os først gennemgå den endelige projektstruktur, hvis du er i tvivl om, hvor du skal oprette de tilsvarende filer eller mappe senere!

Fig. 3:Opret biblioteksapplikationsprojektstruktur

2.3 Projektoprettelse

Dette afsnit vil demonstrere, hvordan man opretter et Java-baseret Maven-projekt med Eclipse. I Eclipse IDE skal du gå til File -> New -> Maven Project .

Fig. 4:Opret Maven Project

I vinduet New Maven Project vil det bede dig om at vælge projektplacering. Som standard vil 'Brug standardarbejdspladsplacering' være valgt. Marker afkrydsningsfeltet 'Opret et simpelt projekt (spring over arketypevalg)', og klik bare på knappen næste for at fortsætte.

Fig. 5:Projektdetaljer

Den vil bede dig om at 'Indtast gruppen og artefakt-id'et for projektet'. Vi vil indtaste detaljerne som vist på billedet nedenfor. Versionsnummeret vil som standard være:0.0.1-SNAPSHOT .

Fig. 6:Arketypeparametre

Klik på Udfør, og oprettelsen af ​​et maven-projekt er fuldført. Hvis du observerer, har den downloadet maven-afhængighederne og en pom.xml filen vil blive oprettet. Den vil have følgende kode:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>JavaNioDirectory</groupId>
	<artifactId>JavaNioDirectory</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
</project>

Udviklere kan begynde at tilføje de afhængigheder, som de ønsker, såsom JUnit osv. Lad os begynde at bygge applikationen!

3. Applikationsbygning

Nedenfor er de trin, der er involveret i udviklingen af ​​denne applikation.

3.1 Java-klasseoprettelse

Lad os oprette de nødvendige Java-filer. Højreklik på src/main/java mappe, New -> Package .

Fig. 7:Java-pakkeoprettelse

Et nyt pop-vindue åbnes, hvor vi indtaster pakkenavnet som:com.jcg.java.nio .

Fig. 8:Java-pakkenavn (com.jcg.java.nio)

Når pakken er oprettet i applikationen, skal vi oprette implementeringsklassen. Højreklik på den nyoprettede pakke:New -> Class .

Fig. 9:Java-klasseoprettelse

Et nyt pop-vindue åbnes og indtast filnavnet som:CreateDirectory . Implementeringsklassen vil blive oprettet inde i pakken:com.jcg.java.nio .

Fig. 10:Java-klasse (CreateDirectory.java)

3.1.1 Implementering af hjælpeklasse

Files.createDirectory() metoden opretter en ny mappe fra Path eksempel. Hvis oprettelsen af ​​mappen lykkes, vises en Path instans returneres, som peger på den nyoprettede sti. Hvis mappen allerede eksisterer, en java.nio.file.FileAlreadyExistsException vil blive kastet, og hvis noget andet går galt, en IOException kan blive smidt. Hvis f.eks. den overordnede mappe for den ønskede nye mappe ikke eksisterer, vises en IOException kan blive smidt.

Bemærk, at den overordnede mappe er den mappe, hvori udviklere vil oprette den nye mappe. Tilføj følgende kode til det:

CreateDirectory.java

package com.jcg.java.nio;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class CreateDirectory {

	// Directory Path
	private static String dirPath ="config/subDir";

	public static void main(String[] args) {

		// Check If Directory Already Exists Or Not?
		Path dirPathObj = Paths.get(dirPath);
		boolean dirExists = Files.exists(dirPathObj);
		if(dirExists) {
			System.out.println("! Directory Already Exists !");
		} else {
			try {
				// Creating The New Directory Structure
				Files.createDirectories(dirPathObj);
				System.out.println("! New Directory Successfully Created !");
			} catch (IOException ioExceptionObj) {
				System.out.println("Problem Occured While Creating The Directory Structure= " + ioExceptionObj.getMessage());
			}
		}
	}
}

4. Kør programmet

For at køre Java Nio-applikationen skal du højreklikke på CreateDirectory klasse -> Run As -> Java Application . Udviklere kan fejlsøge eksemplet og se, hvad der sker efter hvert trin!

Fig. 11:Kør applikation

5. Projektdemo

I ovenstående kode har vi brugt Files.createDirectories() metode til at oprette en ny mappe i projektet, og koden opretter config/subDir mapper i projektet efter udførelse.

Fig. 12:Application Output

Det er alt for dette indlæg. God læring!!

6. Konklusion

Denne vejledning bruger et simpelt eksempel til at illustrere funktionaliteten af ​​Java Nio-pakken og hjælper udviklere med at forstå den grundlæggende konfiguration, der kræves for at opnå oprettelse af mappe-operationen. Det er alt for denne tutorial, og jeg håber, at denne artikel tjente dig, hvad end du ledte efter.

7. Download Eclipse Project

Dette var et eksempel på Java Nio for beginners.core java Java 8 java.nio.file.Files java.nio.file.Path java.nio.file.Paths nio

Java tag