Неколико сценарија захтева да копирате датотеку у Јави. Можда креирате једноставну скрипту за аутоматизацију процеса за менаџер датотека. Можете чак и да пишете комплетну апликацију која ради са датотекама.

Постоји много начина на које можете да копирате датотеку, у зависности од ваших захтеваних перформанси, једноставности или чак коју верзију Јаве користите.

Како копирати датотеке користећи ФилеИнпутСтреам и ФилеОутпутСтреам

Овај метод функционише тако што ручно чита сваки бајт података из датотеке и записује га на ново одредиште. За разлику од методе Филес.цопи у наставку, овај метод можете користити за све верзије Јаве, укључујући Јаву 6 и раније.

Користи класу ФилеИнпутСтреам за читање бајтова из изворне датотеке и ФилеОутпутСтреам за писање бајтова на одредиште.

  1. Направите датотеку било где на рачунару под називом „СимплеСцрипт.јава“.
  2. Отворите датотеку у уређивачу текста или ИДЕ-у и копирајте следећи основни код у апликацију.
    увоз јава.ио. ИОЕкцептион;

    класаСимплеСцрипт{
    јавностистатичнепразнинаглавни(Стринг аргс[])баца ИОЕкцептион {
    // Ваш код овде
    }
    }

  3. instagram viewer
  4. Увезите ове додатне класе Инпут Стреам и Оутпут Стреам на врх датотеке, одмах након прве изјаве за увоз.
    увоз јава.ио. Филе;
    увоз јава.ио. ИнпутСтреам;
    увоз јава.ио. ОутпутСтреам;
    увоз јава.ио. ФилеИнпутСтреам;
    увоз јава.ио. ФилеОутпутСтреам;
  5. Направите нову датотеку под називом „Цопи-Филе-1.ткт“, у истој фасцикли као и ваша датотека СимплеСцрипт.јава. Додајте било који писани садржај унутар датотеке.
  6. У истој фасцикли креирајте и нови директоријум под називом „Одредиште“. Циљ је копирати датотеку "Цопи-Филе-1.ткт" у нову фасциклу.
  7. Унутар главне функције класе, користите класу Филе да креирате два нова објекта датотеке. Извор, који ће бити датотека коју желите да копирате, и одредиште, које ће бити место на које желите да копирате датотеку. Ако одредишна датотека не постоји, ваш програм ће креирати нову.
    класаСимплеСцрипт{ 
    јавностистатичнепразнинаглавни(Стринг аргс[])баца ИОЕкцептион {
    // 1. начин копирања датотеке
    Извор датотеке = Нова Фајл("Копирај-Датотека-1.ткт");
    Одредиште датотеке = Нова Фајл("Одредиште/Копирај-Датотека-1.ткт");
    }
    }
  8. Након тога, креирајте ИнпутСтреам и ОутпутСтреам објекат.
    ИнпутСтреам инпут = нула;
    ОутпутСтреам оутпут = нула;
  9. Користите улазни ток за читање података у бајтовима, а излазни ток за писање података на нову локацију.
    покушати {
    // Креирајте ФилеИнпутСтреам и ФилеОутпутСтреам објекте
    улаз = Нова ФилеИнпутСтреам (извор);
    излаз = Нова ФилеОутпутСтреам (одредиште);
    бајт[] буф = Новабајт[1024];
    инт битесРеад;

    // Уписује бајтове до одредишта
    док ((битесРеад = инпут.реад (буф)) > 0) {
    оутпут.врите (буф, 0, битесРеад);
    }
    } улов (ИОЕкцептион е) {
    е.принтСтацкТраце();
    Систем.оут.принтлн("Није могуће копирати датотеку на одредиште: " + дестинатион.гетПатх() + ". Проверавати ако фасцикла или датотека већ постоји.");
    } коначно {
    // Затвори токове
    ако (унос != нула) {
    инпут.цлосе();
    }

    ако (излаз != нула) {
    оутпут.цлосе();
    }
    }

    Систем.оут.принтлн("Датотека је копирана");

  10. Да бисте покренули скрипту, отворите командну линију. Идите до фасцикле у којој сте ускладиштили Јава датотеку помоћу команде цд на Виндовс командна линија или Мац терминал.
    цд Десктоп
  11. Да бисте компајлирали скрипту, сачувајте Јава датотеку и покрените Јавац команда у командној линији:
    јавац СимплеСцрипт.јава
  12. Да бисте покренули скрипту, користите Јава команда:
    јава СимплеСцрипт
    Требало би да видите једну линију излаза без грешака:
  13. Идите до фасцикле „Одредиште“ да бисте видели своју копирану датотеку.
  14. Отворите датотеку да бисте видели садржај који је ваш програм копирао из оригиналне датотеке.

Како копирати датотеке помоћу Филес.цопи

Ако користите Јава 7 или новију верзију, можете користити методу Филес.цопи. Овај метод је генерално једноставнија имплементација. Према Јава Доцументатион, постоји вишеструка преоптерећења за функцију.

На пример, метода Филес.цопи такође може да користи улазни ток за копирање датотека са једне локације на другу, али путем методе која користи мање кода. Такође можете користити путање или сами одредити како желите да метода копира вашу датотеку.

  1. Направите нову датотеку под називом "Цопи-Филе-2.ткт", у истој фасцикли као и ваша датотека СимплеСцрипт.јава. Додајте било који писани садржај унутар датотеке.
  2. На врху датотеке додајте увозе за „јава.нио.филе. Путања“ и „јава.нио.филе. Филес“ класе.
    увоз јава.нио.филе. Путеви;
    увоз јава.нио.филе. Фајлови;
  3. Додајте два низа, који представљају релативну путању датотеке за изворну датотеку и одредиште. Користите метод Филес.цопи, који ће већ управљати логиком копирања датотеке на одредиште.
    Стринг цопиСоурце = "Копирај-датотеку-2.ткт";
    Стринг цопиДестинатион = "Дестинатион/Цопи-Филе-2.ткт";

    покушати {
    Филес.цопи (Патхс.гет (цопиСоурце), Патхс.гет (цопиДестинатион));
    } улов (Изузетак е) {
    Систем.оут.принтлн("Није могуће копирати датотеку на одредиште: " + цопиДестинатион + ". Проверавати ако фасцикла или датотека већ постоји.");
    }
    Систем.оут.принтлн("2нд Датотека је копирана");

  4. Покрените скрипту користећи Јавац и Јава команде.
  5. Идите до фасцикле „Одредиште“ да бисте видели своју копирану датотеку.

Како копирати датотеке користећи ФилеЦханнел.трансферТо()

Према Јава Доцументатион, овај метод може бити потенцијално бржи начин за копирање датотека. Међутим, ово ће зависити од начина на који имплементирате функцију.

  1. Направите нову датотеку под називом „Цопи-Филе-3.ткт“, у истој фасцикли као и ваша датотека СимплеСцрипт.јава. Додајте неки узорак садржаја овој датотеци.
  2. На врху СимплеСцрипт.јава увезите „јава.нио.цханнелс. ФилеЦханнел" поред три претходне уобичајене класе у вези са датотекама из ио пакета.
    увоз јава.ио. Филе;
    увоз јава.ио. ФилеИнпутСтреам;
    увоз јава.ио. ФилеОутпутСтреам;
    увоз јава.нио.цханнелс. ФилеЦханнел;
  3. Креирајте објекте датотеке за извор и одредиште и користите их за креирање улазног и излазног тока.
    Датотека срц = Нова Фајл("Копирај-Датотека-3.ткт");
    Датотека дст = Нова Фајл("Одредиште/Копирај-Датотека-3.ткт");
    ФилеИнпутСтреам инСтреам = Нова ФилеИнпутСтреам (срц);
    ФилеОутпутСтреам оутСтреам = Нова ФилеОутпутСтреам (дст);
  4. Користите метод ТрансферТо из класе ФилеЦханнел да бисте копирали датотеку на њено одредиште.
    покушати {
    ФилеЦханнел инЦханнел = инСтреам.гетЦханнел();
    ФилеЦханнел оутЦханнел = оутСтреам.гетЦханнел();
    инЦханнел.трансферТо(0, инЦханнел.сизе(), оутЦханнел);
    } улов (Изузетак е) {
    Систем.оут.принтлн("Није могуће копирати датотеку на одредиште: " + дст.гетПатх() + ". Проверавати ако фасцикла или датотека већ постоји.");
    } коначно {
    // Затвори токове
    инСтреам.цлосе();
    оутСтреам.цлосе();
    }
    Систем.оут.принтлн("3рд Фајл копиран");
  5. Покрените скрипту користећи Јавац и Јава команде.
  6. Идите до фасцикле „Одредиште“ да бисте видели своју копирану датотеку.

Копирање датотека у Јави је само почетак

Постоји много начина на које можете копирати датотеку у Јави. Три могућа начина укључују коришћење традиционалне методе стримовања, методе Филес.цопи или методе трансферТо.

Постоји много других операција за управљање датотекама које можете извршити користећи Јаву. Неки од њих укључују премештање датотека, брисање датотека или зиповање датотека. Ово може бити корисно за учење ако треба да аутоматизујете одређене процесе у менаџеру датотека.