כמה תרחישים מחייבים אותך להעתיק קובץ ב-Java. ייתכן שאתה יוצר סקריפט פשוט לאוטומטי של תהליכים עבור מנהל קבצים. אתה יכול אפילו לכתוב יישום מלא שעובד עם קבצים.

ישנן דרכים רבות שבהן תוכל להעתיק קובץ, בהתאם לביצועים הנדרשים שלך, לפשטות, או אפילו באיזו גרסת Java אתה משתמש.

כיצד להעתיק קבצים באמצעות FileInputStream ו- FileOutputStream

שיטה זו פועלת על ידי קריאה ידנית של כל בייט של נתונים מהקובץ, וכתיבתו ליעד חדש. שלא כמו שיטת Files.copy למטה, אתה יכול להשתמש בשיטה זו עבור כל גרסאות Java, כולל Java 6 ומעלה.

הוא משתמש במחלקה FileInputStream כדי לקרוא בתים מקובץ מקור, וב-FileOutputStream כדי לכתוב בתים ליעד.

  1. צור קובץ בכל מקום במחשב שלך בשם "SimpleScript.java".
  2. פתח את הקובץ בעורך טקסט או ב-IDE, והעתק את קוד הבסיס הבא לאפליקציה.
    יְבוּא java.io. IOException;

    מעמדSimpleScript{
    פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת ארגומנטים[])זורק IOException {
    // הקוד שלך כאן
    }
    }

  3. ייבא את מחלקות זרם הקלט וזרימת הפלט הנוספות הללו בראש הקובץ, ממש אחרי הצהרת הייבוא ​​הראשונה.
    יְבוּא java.io. קוֹבֶץ;
    יְבוּא java.io. InputStream;
    יְבוּא java.io. OutputStream;
    יְבוּא java.io. FileInputStream;
    יְבוּא java.io. FileOutputStream;
  4. instagram viewer
  5. צור קובץ חדש בשם "Copy-File-1.txt", באותה תיקיה כמו קובץ SimpleScript.java שלך. הוסף כל תוכן כתוב בתוך הקובץ.
  6. באותה תיקיה, צור גם ספרייה חדשה בשם "יעד". המטרה היא להעתיק את הקובץ "Copy-File-1.txt" לתיקייה החדשה.
  7. בתוך הפונקציה הראשית של המחלקה, השתמש במחלקה File כדי ליצור שני אובייקטי קבצים חדשים. המקור, שיהיה הקובץ שברצונך להעתיק, והיעד, שיהיה המקום אליו תרצה להעתיק את הקובץ. אם קובץ היעד אינו קיים, התוכנית שלך תיצור קובץ חדש.
    מעמדSimpleScript{ 
    פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת ארגומנטים[])זורק IOException {
    // הדרך הראשונה להעתיק קובץ
    מקור הקובץ = חָדָשׁ קובץ ("העתק-קובץ-1.טקסט");
    יעד הקובץ = חָדָשׁ קובץ("יעד/העתק-קובץ-1.טקסט");
    }
    }
  8. לאחר מכן, צור אובייקט InputStream ו-OutputStream.
    InputStream קלט = ריק;
    פלט OutputStream = ריק;
  9. השתמש בזרם הקלט כדי לקרוא את הנתונים בבתים, ובזרם הפלט כדי לכתוב את הנתונים למיקום החדש.
    לְנַסוֹת {
    // צור אובייקטים של FileInputStream ו- FileOutputStream
    קלט = חָדָשׁ FileInputStream (מקור);
    פלט = חָדָשׁ FileOutputStream (יעד);
    בייט[] buf = חָדָשׁבייט[1024];
    int bytesRead;

    // כתוב בייטים ליעד
    בזמן ((bytesRead = input.read (buf)) > 0) {
    output.write (buf, 0, bytesRead);
    }
    } לתפוס (IOException ה) {
    e.printStackTrace();
    System.out.println("לא ניתן היה להעתיק את הקובץ ליעד: " + destination.getPath() + ". חשבון אם התיקיה או הקובץ כבר קיימים.");
    } סוף כל סוף {
    // סגור את הנחלים
    אם (קלט != ריק) {
    input.close();
    }

    אם (פלט != ריק) {
    output.close();
    }
    }

    System.out.println("הקובץ הועתק");

  10. כדי להפעיל את הסקריפט, פתח שורת פקודה. נווט אל התיקיה שבה אחסנת את קובץ ה-Java שלך באמצעות הפקודה cd ב- שורת הפקודה של Windows אוֹ מסוף ה-Mac.
    CD שולחן עבודה
  11. כדי להדר את הסקריפט, שמור את קובץ Java והפעל את Javac פקודה בשורת הפקודה:
    javac SimpleScript.java
  12. כדי להפעיל את הסקריפט, השתמש ב- Java פקודה:
    Java SimpleScript
    אתה אמור לראות שורת פלט אחת ללא שגיאות:
  13. נווט אל תיקיית "יעד" שלך כדי להציג את הקובץ שהועתק.
  14. פתח את הקובץ כדי להציג את התוכן, שהתוכנית שלך העתקה מהקובץ המקורי.

כיצד להעתיק קבצים באמצעות Files.copy

אם אתה משתמש ב-Java 7 ואילך, אתה יכול להשתמש בשיטת Files.copy. שיטה זו היא בדרך כלל יישום פשוט יותר. על פי תיעוד Java, ישנם עומסים מרובים עבור הפונקציה.

לדוגמה, שיטת Files.copy יכולה גם להשתמש בזרם קלט כדי להעתיק קבצים ממיקום אחד לאחר, אך באמצעות שיטה המשתמשת בפחות קוד. אתה יכול גם להשתמש בנתיבים, או לציין בעצמך איך אתה רוצה שהשיטה תעתיק את הקובץ שלך.

  1. צור קובץ חדש בשם "Copy-File-2.txt", באותה תיקיה כמו קובץ SimpleScript.java שלך. הוסף כל תוכן כתוב בתוך הקובץ.
  2. בחלק העליון של הקובץ, הוסף ייבוא ​​עבור הקובץ "java.nio.file. נתיבים" ו-"java.nio.file. שיעורי קבצים.
    יְבוּא java.nio.file. שבילים;
    יְבוּא java.nio.file. קבצים;
  3. הוסף שתי מחרוזות, המייצגות את נתיב הקובץ היחסי עבור קובץ המקור והיעד. השתמש בשיטת Files.copy, שכבר תטפל בהיגיון להעתיק את הקובץ ליעד.
    מחרוזת copySource = "Copy-File-2.טקסט";
    String copyDestination = "יעד/העתק-קובץ-2.טקסט";

    לְנַסוֹת {
    Files.copy (Paths.get (copySource), Paths.get (copyDestination));
    } לתפוס (חריג ה) {
    System.out.println("לא ניתן היה להעתיק את הקובץ ליעד: " + copyDestination + ". חשבון אם התיקיה או הקובץ כבר קיימים.");
    }
    System.out.println("2nd הקובץ הועתק");

  4. הפעל את הסקריפט באמצעות פקודות Javac ו-Java.
  5. נווט אל תיקיית "יעד" שלך כדי להציג את הקובץ שהועתק.

כיצד להעתיק קבצים באמצעות FileChannel.transferTo()

על פי תיעוד Java, שיטה זו יכולה להיות דרך מהירה יותר להעתיק קבצים. עם זאת, זה יהיה תלוי בדרך שבה אתה מיישם את הפונקציה.

  1. צור קובץ חדש בשם "Copy-File-3.txt", באותה תיקיה כמו קובץ SimpleScript.java שלך. הוסף תוכן לדוגמה לקובץ זה.
  2. בחלק העליון של SimpleScript.java, ייבא את "java.nio.channels. מחלקה FileChannel" לצד שלוש מהמחלקות הקודמות הקשורות לקבצים מחבילת io.
    יְבוּא java.io. קוֹבֶץ;
    יְבוּא java.io. FileInputStream;
    יְבוּא java.io. FileOutputStream;
    יְבוּא java.nio.channels. FileChannel;
  3. צור אובייקטים של קבצים עבור המקור והיעד, והשתמש בהם כדי ליצור זרם קלט וזרם פלט.
    קובץ src = חָדָשׁ קובץ ("העתק-קובץ-3.טקסט");
    קובץ dst = חָדָשׁ קובץ("יעד/העתק-קובץ-3.טקסט");
    FileInputStream inStream = חָדָשׁ FileInputStream (src);
    FileOutputStream outStream = חָדָשׁ FileOutputStream (dst);
  4. השתמש בשיטת TransferTo מהמחלקה FileChannel כדי להעתיק את הקובץ ליעדו.
    לְנַסוֹת {
    FileChannel inChannel = inStream.getChannel();
    FileChannel outChannel = outStream.getChannel();
    inChannel.transferTo(0, inChannel.size(), outChannel);
    } לתפוס (חריג ה) {
    System.out.println("לא ניתן היה להעתיק את הקובץ ליעד: " + dst.getPath() + ". חשבון אם התיקיה או הקובץ כבר קיימים.");
    } סוף כל סוף {
    // סגור את הנחלים
    inStream.close();
    outStream.close();
    }
    System.out.println("3הקובץ הועתק");
  5. הפעל את הסקריפט באמצעות פקודות Javac ו-Java.
  6. נווט אל תיקיית "יעד" שלך כדי להציג את הקובץ שהועתק.

העתקת קבצים ב-Java היא רק ההתחלה

ישנן דרכים רבות שבהן תוכל להעתיק קובץ ב-Java. שלוש דרכים אפשריות כוללות שימוש בשיטת הזרם המסורתית, שיטת Files.copy או שיטת transferTo.

ישנן פעולות רבות אחרות של מנהל הקבצים שתוכל לבצע באמצעות Java. חלקם כוללים העברת קבצים, מחיקת קבצים או דחיסה של קבצים. אלה יכולים להיות שימושיים כדי ללמוד אם אתה צריך להפוך תהליכים מסוימים לאוטומטיים במנהל הקבצים.