Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取到文本文件_Java_Binary Search Tree - Fatal编程技术网

Java 如何读取到文本文件

Java 如何读取到文本文件,java,binary-search-tree,Java,Binary Search Tree,我需要输出到一个txt文件。。我可以输出我的单词,但不能输出我的BST。我正在尝试将我的二叉树按顺序、前顺序和后顺序输出到我的txt文件中。我该怎么做??我的代码如下: import java.io.FileReader; import java.io.FileOutputStream; import java.io.PrintStream; import java.io.FileNotFoundException; public class Project3 { public Nod

我需要输出到一个txt文件。。我可以输出我的单词,但不能输出我的BST。我正在尝试将我的二叉树按顺序、前顺序和后顺序输出到我的txt文件中。我该怎么做??我的代码如下:

import java.io.FileReader;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.FileNotFoundException;

public class Project3 {
    public Node root;

    public Project3 insert(int number) {
        Node node = new Node(number);

        if (root == null) {
            root = node;
            return this;
        }

        insertValue(root, node);
        return this;

    }

    public class Node {

        public int number;
        public Node left;
        public Node right;

        public Node(int number) {
            this.number = number;
        }
    }

    private void insertValue(Node newRoot, Node node) {
        if (newRoot.number > node.number) {
            if (newRoot.left == null) {
                newRoot.left = node;
                return;
            } else {
                insertValue(newRoot.left, node);
            }
        } else {
            if (newRoot.right == null) {
                newRoot.right = node;
                return;
            } else {
                insertValue(newRoot.right, node);
            }
        }
    }

    public void printInorder() {
        printInOrderImplem(root);
        System.out.println("");
    }

    public void printPreorder() {
        PreOrderImplem(root);
        System.out.println("");
    }

    public void printPostorder() {
        printPostOrderImplem(root);
        System.out.println("");
    }

    private void printInOrderImplem(Node currRoot) {
        if (currRoot == null) {
            return;
        }
        printInOrderImplem(currRoot.left);
        System.out.print(currRoot.number + ", ");
        printInOrderImplem(currRoot.right);
    }

    private void PreOrderImplem(Node currRoot) {
        if (currRoot == null) {
            return;
        }
        System.out.print(currRoot.number + ", ");
        PreOrderImplem(currRoot.left);
        PreOrderImplem(currRoot.right);
    }

    private void printPostOrderImplem(Node currRoot) {
        if (currRoot == null) {
            return;
        }
        printPostOrderImplem(currRoot.left);
        printPostOrderImplem(currRoot.right);
        System.out.print(currRoot.number + ", ");
    }

    public static void main(String[] args) throws FileNotFoundException {
        PrintStream out = new PrintStream(new FileOutputStream("/Users/Desktop/output.txt"));
        Project3 BST = new Project3();

        // numbers to insert 14, 15, 4, 9, 7, 18, 3, 5, 16, 4, 20, 17, 9, 14, 5
        BST.insert(14);
        BST.insert(15);
        BST.insert(4);
        BST.insert(9);
        BST.insert(7);
        BST.insert(18);
        BST.insert(3);
        BST.insert(5);
        BST.insert(16);
        BST.insert(4);
        BST.insert(20);
        BST.insert(17);
        BST.insert(9);
        BST.insert(14);
        BST.insert(5);

        System.out.println("Inorder traversal is- ");
        out.println("Inorder traversal is- ");
        BST.printInorder();

        System.out.println("Preorder traversal is- ");
        out.println("Preorder Traversal is- ");
        BST.printPreorder();

        System.out.println("Postorder traversal is- ");
        out.println("Postorder Traversal is- ");
        BST.printPostorder();
    }
}

下面是一个如何写入txt文件的示例

import java.io.PrintWriter;
try { 
    PrintWriter writer = new PrintWriter("example.txt");
    writer.print("stuff in my .txt");
    writer.println();
    writer.close();
} catch(IOException e) {
}

请注意.txt(或您编写的任何文件)将与.java位于同一目录中。如果希望它位于其他目录中,则必须在文件名之前输入目录。(即“filename/example.txt”)

下面是一个如何写入txt文件的示例

import java.io.PrintWriter;
try { 
    PrintWriter writer = new PrintWriter("example.txt");
    writer.print("stuff in my .txt");
    writer.println();
    writer.close();
} catch(IOException e) {
}
请注意.txt(或您编写的任何文件)将与.java位于同一目录中。如果希望它位于其他目录中,则必须在文件名之前输入目录。(即“filename/example.txt”)

您的
printXorder()
方法总是打印到
System.out
,因此您永远不会在磁盘上的文件中看到这一点。你有几个选择,我将解释主要的两个:

  • 不要实现
    printXorder()
    方法,而是使用
    toStringXorder()
    ,它返回一个
    字符串,然后可以将该字符串打印到您喜欢的任何流中。如果执行此操作,则应在
    String
    构造阶段使用
    StringBuilder
    (或者
    StringBuffer
    ,如果代码是可重入的),并仅在最后一步将其转换为
    String
    。另外,
    StringBuilder
    允许您轻松删除实现中最后一个讨厌的逗号(如果您选择删除逗号,请小心
    toString
    ing空树)
  • 让您的
    printXorder()
    方法获取
    PrintStream
    参数,并使它们打印到该
    PrintStream
如果您的树不会长得太多,那么第一种解决方案是可以的(通常更灵活)。如果树可能变得非常大(因此生成的
字符串将导致内存中出现问题),您将需要第二个。

您的
printXorder()
方法总是打印到
System.out
,因此您永远不会在磁盘上的文件中看到它。你有几个选择,我将解释主要的两个:

  • 不要实现
    printXorder()
    方法,而是使用
    toStringXorder()
    ,它返回一个
    字符串,然后可以将该字符串打印到您喜欢的任何流中。如果执行此操作,则应在
    String
    构造阶段使用
    StringBuilder
    (或者
    StringBuffer
    ,如果代码是可重入的),并仅在最后一步将其转换为
    String
    。另外,
    StringBuilder
    允许您轻松删除实现中最后一个讨厌的逗号(如果您选择删除逗号,请小心
    toString
    ing空树)
  • 让您的
    printXorder()
    方法获取
    PrintStream
    参数,并使它们打印到该
    PrintStream
如果您的树不会长得太多,那么第一种解决方案是可以的(通常更灵活)。如果树可能变得非常大(因此生成的
字符串
将导致内存中出现问题),则需要第二个