Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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_Arrays_String_Text_Printwriter - Fatal编程技术网

使用java将字符串数组打印到文本文件

使用java将字符串数组打印到文本文件,java,arrays,string,text,printwriter,Java,Arrays,String,Text,Printwriter,我试图将用户输入的结果打印到一个简单的文本文件中,但我所做的一切都失败了。我尝试在开关盒中使用PrintWriter,但结果仍然为空。我对Java很陌生,所以可能我缺少了一些明显的信息? 代码如下: package parkingsystem; import java.io.*; import java.util.Scanner; public class Registration { static String [][] userData; static String [][

我试图将用户输入的结果打印到一个简单的文本文件中,但我所做的一切都失败了。我尝试在开关盒中使用PrintWriter,但结果仍然为空。我对Java很陌生,所以可能我缺少了一些明显的信息? 代码如下:

package parkingsystem;

import java.io.*;
import java.util.Scanner;

public class Registration {

   static String [][] userData;
   static String [][] fileData;

    public static void Registration(){

        Scanner input = new Scanner(System.in);
        String lotNo;
        String First;
        String Last;
        String studentID;
        String phoneNo;
        String email;
        String carNo;
        String dateReg;
        String strcontent;
        String proceed;
        boolean proceed2 = true;
        userData = new String [50][6];
        fileData = new String [50][6];
        int counter = 0;
        int col;
        int row;
        boolean carry_on = true;
        MainMenu choices = new MainMenu();

       while(proceed2=true){
        System.out.println("Press Y/y to add a new user");
        System.out.println("Press N/n to return to menu");
        proceed = input.nextLine();
            switch (proceed) {
                case "Y":
                case "y":
                    System.out.println("Enter your student ID");
                    studentID = input.nextLine();
                    System.out.println("Enter your first name");
                    First = input.nextLine();
                    System.out.println("Enter your last name");
                    Last = input.nextLine();
                    System.out.println("Enter your car number");
                    carNo = input.nextLine();
                    System.out.println("Enter your contact number");
                    phoneNo = input.nextLine();
                    System.out.println("Enter your email address");
                    email = input.nextLine();
                    row = counter ;
                    userData [row][0] = studentID;
                    userData [row][1] = First;
                    userData [row][2] = Last;
                    userData [row][3] = carNo;
                    userData [row][4] = phoneNo;
                    userData [row][5] = email;
                    if (counter == 6){
                        carry_on=false;
                    }  

                    proceed2 = false;
                    break;
                case "N":
                case "n":
                    choices.Menus();
                    break;
            }

       }



}

}
这里是重新分解代码的第二步

因此,在这次重构中,我们捕获并存储新创建的CarOwner对象,并将它们存储在一个列表中

然后,我们将了解如何遍历CarOwner的列表,然后将这些对象写入名为CarOwner.dat的文件

通常在工业上,,代码重分解是在拥有一组单元测试的环境中完成的,您可以根据这些测试确保重构没有破坏代码所需的行为,但我们只是在这里学习,所以这项工作可以解释您缺少的一些概念,下面的第一次迭代也有自己的一些问题,所以请不要这样做把这个作为最终产品

重构

  • 我已经创建了一个CarOwner类
  • 我已经重命名了布尔变量canprocedure,以便它的读取更自然
  • 更新:我已使CarOwner类可序列化;这将允许我们将对象写入文件
  • 更新:我已经添加了一些代码,用于更新新的车主,并将其添加到一个列表中,然后我迭代该列表,将这些车主对象写入一个文件流

    包装停车系统

    导入java.io.FileNotFoundException; 导入java.io.ObjectOutputStream; 导入java.io.IOException; 导入java.util.ArrayList; 导入java.util.Date; 导入java.util.List; 导入java.io.FileOutputStream; 导入java.util.Scanner

    公开课注册{ 公共静态void main(字符串[]args){ 列表车主=新建ArrayList()

    }

  • 以下是车主课程现在的样子

    package parkingsystem;
    
    import java.io.Serializable;
    
    public class CarOwner implements Serializable{
        private String First;
        private String Last;
        private String studentID;
        private String email;
        private String carNo;
        private String dateReg;
        private String contactNumber;
    
        public CarOwner() {
        }
    
        public String  getFirst() {
            return First;
        }
    
        public void setFirst(String first) {
            First = first;
        }
    
        public String getLast() {
            return Last;
        }
    
        public void setLast(String last) {
            Last = last;
        }
    
        public String getStudentID() {
            return studentID;
        }
    
        public void setStudentID(String studentID) {
            this.studentID = studentID;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getCarNo() {
            return carNo;
        }
    
        public void setCarNo(String carNo) {
            this.carNo = carNo;
        }
    
        public String getDateReg() {
            return dateReg;
        }
    
        public void setDateReg(String dateReg) {
            this.dateReg = dateReg;
        }
    
        public void setContactNumber(String contactNumber) {
            this.contactNumber = contactNumber;
        }
    
        public String getContactNumber() {
            return contactNumber;
        }
    
        @Override
        public String toString() {
            return "CarOwner{" +
                    "First='" + First + '\'' +
                    ", Last='" + Last + '\'' +
                    ", studentID='" + studentID + '\'' +
                    ", email='" + email + '\'' +
                    ", carNo='" + carNo + '\'' +
                    ", dateReg='" + dateReg + '\'' +
                    ", contactNumber='" + contactNumber + '\'' +
                    '}';
        }
    }
    
    好了,创建CarOwner类是为了让代码更加面向对象

    其次,重新分解的代码演示了在Java中正确使用布尔变量

    正如其他评论员已经指出的,赋值运算符=很容易与布尔等式的测试混淆。请参阅

    此外,我还将
    布尔继续;
    重命名为
    布尔继续;
    这是一种常见的策略。将布尔变量命名为一个“答案”为是或否或真或假的问题

    这就意味着我们可以编写类似于
    的代码,而(canprocedure)
    读起来非常容易。另请参阅

    我希望这能有所帮助。

    这里是重新分解代码的第二步

    因此,在这次重构中,我们捕获并存储新创建的CarOwner对象,并将它们存储在一个列表中

    然后,我们将了解如何遍历CarOwner的列表,然后将这些对象写入名为CarOwner.dat的文件

    通常,在行业中,代码重分解是在拥有一组单元测试的环境中完成的,您可以根据这些测试确保重构没有破坏代码所需的行为,但我们只是在这里学习,所以这项工作可以解释您缺少的一些概念,下面的第一次迭代有一些问题它自己的用途,所以不要把它作为最终产品

    重构

  • 我已经创建了一个CarOwner类
  • 我已经重命名了布尔变量canprocedure,以便它的读取更自然
  • 更新:我已使CarOwner类可序列化;这将允许我们将对象写入文件
  • 更新:我已经添加了一些代码,用于更新新的车主,并将其添加到一个列表中,然后我迭代该列表,将这些车主对象写入一个文件流

    包装停车系统

    导入java.io.FileNotFoundException; 导入java.io.ObjectOutputStream; 导入java.io.IOException; 导入java.util.ArrayList; 导入java.util.Date; 导入java.util.List; 导入java.io.FileOutputStream; 导入java.util.Scanner

    公开课注册{ 公共静态void main(字符串[]args){ 列表车主=新建ArrayList()

    }

  • 以下是车主课程现在的样子

    package parkingsystem;
    
    import java.io.Serializable;
    
    public class CarOwner implements Serializable{
        private String First;
        private String Last;
        private String studentID;
        private String email;
        private String carNo;
        private String dateReg;
        private String contactNumber;
    
        public CarOwner() {
        }
    
        public String  getFirst() {
            return First;
        }
    
        public void setFirst(String first) {
            First = first;
        }
    
        public String getLast() {
            return Last;
        }
    
        public void setLast(String last) {
            Last = last;
        }
    
        public String getStudentID() {
            return studentID;
        }
    
        public void setStudentID(String studentID) {
            this.studentID = studentID;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getCarNo() {
            return carNo;
        }
    
        public void setCarNo(String carNo) {
            this.carNo = carNo;
        }
    
        public String getDateReg() {
            return dateReg;
        }
    
        public void setDateReg(String dateReg) {
            this.dateReg = dateReg;
        }
    
        public void setContactNumber(String contactNumber) {
            this.contactNumber = contactNumber;
        }
    
        public String getContactNumber() {
            return contactNumber;
        }
    
        @Override
        public String toString() {
            return "CarOwner{" +
                    "First='" + First + '\'' +
                    ", Last='" + Last + '\'' +
                    ", studentID='" + studentID + '\'' +
                    ", email='" + email + '\'' +
                    ", carNo='" + carNo + '\'' +
                    ", dateReg='" + dateReg + '\'' +
                    ", contactNumber='" + contactNumber + '\'' +
                    '}';
        }
    }
    
    好了,创建CarOwner类是为了让代码更加面向对象

    其次,重新分解的代码演示了在Java中正确使用布尔变量

    正如其他评论员已经指出的,赋值运算符=很容易与布尔等式的测试混淆。请参阅

    此外,我还将
    布尔继续;
    重命名为
    布尔继续;
    这是一种常见的策略。将布尔变量命名为一个“答案”为是或否或真或假的问题

    这就意味着我们可以编写类似于
    的代码,而(canprocedure)
    读起来非常容易。另请参阅


    我希望这能有所帮助。

    每当你编写
    if(boolean=true)
    时,Java程序员都会死……这是一个赋值操作,总是返回
    true
    。你需要
    if(boolean==true)
    或者,实际上,
    if(boolean)
    。这是Boris指出的一句冒犯的话:while(proceed2=true)。您应该在(proceed2)时重新编写它。检查是否需要帮助写入文件。除了boris所说的之外,您会遇到什么样的错误?此代码存在多个层次的问题。此代码需要重新分解。我将尝试进行一些简单的重构,以帮助解释您当前学习的一些Java语言问题,然后我将进一步进行她的建议。并非有意冒犯任何人,但谢谢你的提示。我意识到代码相当混乱。至于打印到文件,有什么想法吗?每当你写
    if(boolean=true)
    时,Java程序员就会死……这是一个赋值操作,总是返回
    true
    。你需要
    if(boolean)