这是我的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)。
答案 0 :(得分:4)
如果你的代码看起来像这样,我很惊讶你得到了确切的错误:
output.write("+firstname+" "+lastname+" "+mobnum+");
这里的问题是你有三个字符串文字,所以你的代码有点像这样:
output.write("x" "y" "z")
这只是无效的Java。我怀疑你实际上想要:
output.write(firstname + " " + lastname + " " + mobnum);
现在,您正在五个字符串之间执行字符串连接:
firstname
lastname
mobnum
......我相信这是你的意图。密切关注您的代码非常重要 - 您不能只在任何想要进行字符串连接的地方开始添加"+
。
答案 1 :(得分:1)
删除firstname
之前和mobnum
之后的双引号,请按照以下方式使用:
output.write(firstname + " " + lastname + " " + mobnum);
你使用它的方式就像有三个分开的字符串:
"+firstname+" "+lastname+" "+mobnum+"
equals to => "string1" "string2" "string3"
答案 2 :(得分:1)
您的方法调用不正确。使用
output.write(firstname+" "+lastname+" "+mobnum);
代替。
答案 3 :(得分:0)
您的output.write()
有错误
output.write(firstname+" "+lastname+" "+mobnum);
您应该在FileInputStream
FileInputStream fis=new FileInputStream("E:/java/myfile.txt");