0

この質問を繰り返されるものと見なさないでください。フォルダー ter にいくつかのファイルがあります。つまり、ter フォルダーは c : ドライブにあり、gfr.ser という名前のシリアル化されたファイルが含まれているため、完全なパスは (C:\ter\gfr .ser) 、ここで、この gfr.ser ファイルを C: 内の別のフォルダーにコピーする必要があります。それ自体は bvg という名前なので、ファイルをパス (C:\bvg\gfr.ser) にコピーする必要があります。下は Java クラスです。アドバイスしてください私は同じことを達成できますか、アドバイスしてください

import java.util.TimerTask;
import java.util.Date;
import java.util.Timer;


// Create a class extends with TimerTask
public class ScheduledTask extends TimerTask {

    // Add your task here
    public void run() {
        Runtime.getRuntime().exec("cmd.exe /c start c:\\ter\\gfr.ser");
    }
}

//Main class
public class SchedulerMain {
    public static void main(String args[]) throws InterruptedException {

        Timer time = new Timer(); // Instantiate Timer Object
        ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class
        time.schedule(task, now ,TimeUnit.SECONDS.toMillis(2));

    }
}
4

1 に答える 1

0

あなたにとってより簡単なオプションは、おそらくコメントの私のリンクからの最初のオプションだと思います(プロジェクトに追加のライブラリをダウンロードする必要はありません)。アプリケーションで使用できる簡単なコードを次に示します。

Path source = new File("C:\\ter\\gfr.ser").toPath();
Path target = new File("C:\\bvg\\gfr.ser").toPath();
Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);

ただし、C:\bvgコピーを開始する前に、フォルダーが存在することを確認してください。


JDK 1.6 を使用しているため、この例の方が優れています。古いファイルを新しいファイルに置き換えようとしていると思います。これを行う方法は次のとおりです。

import java.io.*;
import java.util.*;
import java.util.concurrent.TimeUnit;

class ScheduledTask extends TimerTask {

    public void run() {
        InputStream inStream = null;
        OutputStream outStream = null;

        try {
            File targetDirectory = new File("C:\\bvg");
            if (!targetDirectory.exists()) targetDirectory.mkdirs();

            File source = new File("C:\\ter\\gfr.ser");
            File target = new File("C:\\bvg\\gfr.ser");

            inStream = new FileInputStream(source);
            outStream = new FileOutputStream(target);

            byte[] buffer = new byte[1024];

            int length;
            // copy the file content in bytes
            while ((length = inStream.read(buffer)) > 0) {
                outStream.write(buffer, 0, length);
            }

            inStream.close();
            outStream.close();

            System.out.println("File is copied successful!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

// Main class
public class SchedulerMain {

    public static void main(String args[]) throws InterruptedException {

        Timer time = new Timer();
        ScheduledTask task = new ScheduledTask();

        time.schedule(task, new Date(), TimeUnit.MINUTES.toMillis(2));

    }
}
于 2013-02-02T17:07:57.647 に答える