0

我正在开发一个地址簿程序,该程序读取 csv 文件并打印联系人,包括他们的姓氏、名字、地址、城市、州、邮编和电话号码。我已经得到了一段代码,我已经让这部分代码工作了。

到目前为止,我已经阅读了该文件并将内容写入了一个 newFile。但是,有一部分代码我不完全确定它的作用。因为我是编程新手,所以我不想只是将简单有效的代码拼凑在一起,我想了解发生了什么。我感到困惑的部分就在 main 语句之后(main 之后的前 9 行开始于 String [] lname, fname, street.....)

请,任何帮助将不胜感激。

public class Main 
{
public static void main (String [] args) throws FileNotFoundException
{
    String [] lName, fName, street, city, state, zip, phone;

    lName = new String[20];
    fName = new String[20];
    street = new String[50];
    city = new String[20];
    state = new String[20];
    zip = new String[12];

    System.out.println("ADDRESS BOOK CONTENTS: ");

    Scanner inFile;

    try 
    {
        inFile = new Scanner (new File("src/addresses.csv"));
        String temp;

        while (inFile.hasNextLine())
        {
            temp = inFile.nextLine();
            System.out.println("Contact:    " + temp);              
        }   

        System.out.println(inFile);


    }

        catch (FileNotFoundException e) 
        {
            //catch block
            e.printStackTrace();
        }
    try
    {
    FileInputStream fileIn = new FileInputStream("src/addresses.csv");
    FileOutputStream fileOut = new FileOutputStream("src/newfile.csv");

    int c;
    while ((c = fileIn.read()) != -1)
    {
        fileOut.write(c);
    }

    fileIn.close();
    fileOut.close();
    }

     catch (FileNotFoundException exception1) 
      {
         System.err.println("FileCopy: " + exception1);
      } 
      catch (IOException exception1) 
      {
         System.err.println("FileCopy: " + exception1);
      }

}
}
4

2 回答 2

1

这只是声明了一些类型的变量,String[]它是一个字符串数组。

以下几行将array具有初始容量的新变量分配给这些变量。

这种语法先声明变量,然后赋值,但您也可以在一个语句中进行声明和赋值,如下所示:

String[] lName = new String[20];

这两种语法是等价的。

于 2013-03-18T21:45:18.793 回答
1

代码的那些部分是一个数组创建语句。

lName = new String[20];

意味着创建一个包含 20 个元素的新字符串数组并将其分配给变量lName

只是为了给你更多的数组示例开始:

lName[4] = "john";

表示将字符串值“john”分配给数组的第 5 个(不是第 4 个)元素

String name = lName[0];

表示检索数组的第一个元素并将其分配给名为的变量name

于 2013-03-18T21:45:45.977 回答