-2

这是我的 java 代码,其中我得到了代码后描述的错误。

     import java.util.Scanner;
     import java.util.StringTokenizer;
     import java.io.*;
       import java.util.*;
       public class FileDemo {
public static void main(String args[]){
      Scanner sc=new Scanner(System.in);
      System.out.println("Enter no of persons");
      int person=sc.nextInt();
      File myfile = new File("E:/java/myfile.txt");
      BufferedWriter output = new BufferedWriter(new FileWriter(myfile));
     for(int i=0;i<person;i++)
     {

         System.out.println("Enter Firstname");
         String firstname=sc.next();

         System.out.println("Lastname");
         String lastname=sc.next();
         System.out.println("mobnum");
         int mobnum=sc.nextInt();

         output.write("+firstname+" "+lastname+" "+mobnum+");            
     }
     output.close();
      /*** here change fis to Reader ***/
   FileInputStream fis=new FileInputStream("myfile.txt");
   BufferedReader br=new BufferedReader(fis);
     int i=1;
   String str=null;
        while((str=br.readLine())!=null)
      {

    System.out.println("Person"+i);
    StringTokenizer st=new StringTokenizer(str,"");

    System.out.println("FirstName"+st.nextToken());
    System.out.println("lastname"+st.nextToken());
    System.out.println("country"+st.nextToken());
      }
     }
    }

在这里,我收到错误,类型 Writer 中的方法 write(String) 不适用于参数 (String,String)。

4

4 回答 4

4

如果您的代码看起来像这样,我很惊讶您会收到确切的错误:

output.write("+firstname+" "+lastname+" "+mobnum+");

这里的问题是你有三个字符串文字,所以你的代码有点像这样:

output.write("x" "y" "z")

那简直是无效的Java。我怀疑你实际上想要:

output.write(firstname + " " + lastname + " " + mobnum);

现在您正在执行五个字符串之间的字符串连接:

  • firstname
  • 空间
  • lastname
  • 空间
  • mobnum

...这就是你的意图,我相信。密切关注你的代码很重要——你不能只是开始"+在任何你想进行字符串连接的地方添加。

于 2013-04-26T06:26:23.497 回答
1

去掉之前firstname和之后的双引号mobnum,这样使用:

output.write(firstname + " " + lastname + " " + mobnum);

您使用它的方式就像拥有 3 个单独的字符串:

"+firstname+" "+lastname+" "+mobnum+" 

equals to => "string1" "string2" "string3"
于 2013-04-26T06:25:41.400 回答
1

您的方法调用不正确。利用

output.write(firstname+" "+lastname+" "+mobnum);

反而。

于 2013-04-26T06:26:17.970 回答
0

output.write()有错误

output.write(firstname+" "+lastname+" "+mobnum);

FileInputStream您还应该提供完整路径

FileInputStream fis=new FileInputStream("E:/java/myfile.txt");
于 2013-04-26T06:27:14.900 回答