数据不在创建的文件中

时间:2015-12-13 06:34:05

标签: java

我一直在尝试获取文件中的数据但不知何故我无法获取文件中的数据,我们非常感谢任何建议。

文件是根据要求创建的,但它们都是空的。我一直试图通过尝试各种方法来修复它,但它似乎没有用。

public class Node {

@SuppressWarnings("unchecked")
public static void main(String[] args) {

    // handling the argument and placing it in respective variables for
    // further use
    int fromNode = 0;
    int toNode = 0;
    String message = null;
    int timeAfter = 0;
    // Write a message to the respective node after particular time interval
    // to the respective node after
    // message example node 2 9 "message" 20 & i.e node x node y the message
    // and
    for (int i = 0; i < args.length; i++) {
        fromNode = Integer.parseInt(args[0]);
        toNode = Integer.parseInt(args[1]);
        message = args[2];
        timeAfter = Integer.parseInt(args[3]);
    }

    System.out.println("from Node :" + fromNode);
    System.out.println("to Node :" + toNode);
    System.out.println("message  :" + message);
    System.out.println("time after which :" + timeAfter);

    // ******************************************************************

    // opening and closing the file for required appending the content to
    // those files

    try {
        String data = message;

        File fileTo = new File(File.separator + "Users"
                 + File.separator + "Desktop" + File.separator
                + "Files" + File.separator + "to" + toNode + ".txt");
        File fileFrom = new File(File.separator + "Users" 
                 + File.separator + "Desktop" + File.separator
                + "Files" + File.separator + "from" + fromNode + ".txt");

        // if file does not exists, then create it
        if (!fileTo.exists()) {
            fileTo.createNewFile();
        }

        if (!fileFrom.exists()) {
            fileFrom.createNewFile();
        }

        // true = append file
        FileWriter fileWritter = new FileWriter(fileTo.getName(), true);
        BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
        bufferWritter.write(data);
        bufferWritter.flush();
        bufferWritter.close();

        FileWriter fileWritterfrom = new FileWriter(fileFrom.getName(),
                true);
        // System.out.println("------>"+data);
        BufferedWriter bufferWritterfrom = new BufferedWriter(
                fileWritterfrom);
        bufferWritterfrom.write(data);
        bufferWritterfrom.flush();
        bufferWritterfrom.close();
        System.out.println("Files have been created");

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

1 个答案:

答案 0 :(得分:3)

我猜,文件是写的,但不是你想要的地方。调用fileTo.getName()只是为您提供路径的最后一个组件。所以你在当前目录中写了一个名为to<some number>.txt的文件。

尝试使用

FileWriter fileWritter = new FileWriter(fileTo, true);

这应该以完整路径写入文件。

顺便说一下。没有必要先创建文件。