Java 在文本文件中添加多条记录
我想在一个文本文件中添加多条记录。所以我写了下面的程序。但在这个程序中,每次用户从命令提示符输入数据时,数据都会被覆盖。文件中的数据被覆盖。那么,如何在一个文本文件中添加多个记录呢 apples3.javaJava 在文本文件中添加多条记录,java,Java,我想在一个文本文件中添加多条记录。所以我写了下面的程序。但在这个程序中,每次用户从命令提示符输入数据时,数据都会被覆盖。文件中的数据被覆盖。那么,如何在一个文本文件中添加多个记录呢 apples3.java class apples3 { public static void main(String[] args) { ffile g = new ffile(); g.get(); g.openFile(); g.addRecord
class apples3
{ public static void main(String[] args)
{ ffile g = new ffile();
g.get();
g.openFile();
g.addRecords();
g.closeFile();
}
}
java
import java.io.*;
import java.lang.*;
import java.util.*;
public class ffile
{ private Formatter x;
Scanner sc = new Scanner(System.in);
int rollno;
String fname, lname;
public void get()
{ System.out.println("Enter rollno: ");
rollno = sc.nextInt();
System.out.println("Enter first name: ");
fname = sc.next();
System.out.println("Enter last name: ");
lname = sc.next();
}
public void openFile()
{ try
{ x = new Formatter("xyz.txt");
}
catch(Exception e)
{ System.out.println("You have an error");
}
}
public void addRecords()
{ x.format("%s %s %s ", rollno, fname, lname);
}
public void closeFile()
{ x.close();
}
}
添加记录后,我使用以下代码段显示它:
Scanner x;
try
{ x = new Scanner(new File("Keyur.txt"));
while(x.hasNext())
{ String a = x.next();
String b = x.next();
String c = x.next();
String d = x.next();
System.out.printf("%s %s %s %s\n", a, b, c, d);
}
x.close();
}
catch(Exception e)
{ System.out.println("could not find file");
}
显示屏的输出如cmd中所示:1 ghi mno
2 xyz abc
3 pqr def
实际上,我正在java框架中运行这个程序。因此,我选择了所有必要的文本框、标签和按钮。
当我在文本框中输入任何名称时,我要删除该名称的特定行,例如输入xyz,然后从数据库txt文件中删除第2行xyz abc。
我在文本框和第二个文本框aaa中写入pqr,然后我想在我的txt文件中更新该记录 因此,如果可能的话,我只需要代码片段,它对我也很有用。尝试在以下位置打开流: 尝试在以下位置打开流: 试试这个
public void openFile() {
try {
// APPEND MODE SET HERE
bw = new BufferedWriter(new FileWriter("xyz.txt", true));
x = new Formatter(bw);
} catch (Exception e) {
System.out.println("You have an error");
}
}
public void addRecords() {
x.format("%s %s %s", rollno, fname, lname);
x.format("%s", "\n");
}
试试这个
public void openFile() {
try {
// APPEND MODE SET HERE
bw = new BufferedWriter(new FileWriter("xyz.txt", true));
x = new Formatter(bw);
} catch (Exception e) {
System.out.println("You have an error");
}
}
public void addRecords() {
x.format("%s %s %s", rollno, fname, lname);
x.format("%s", "\n");
}
根据Java文档,每次创建格式化程序对象时,它都会覆盖文件。您可以看到它。试试这个:
import java.io.*;
import java.lang.*;
import java.util.*;
public class ffile
{
private File file;
BufferedWriter output;
private Formatter x;
Scanner sc = new Scanner(System.in);
int rollno;
String fname, lname;
public void get()
{ System.out.println("Enter rollno: ");
rollno = sc.nextInt();
System.out.println("Enter first name: ");
fname = sc.next();
System.out.println("Enter last name: ");
lname = sc.next();
}
public void openFile()
{ try
{
x = new Formatter();
file = new File("xyz.txt");
}
catch(Exception e)
{ System.out.println("You have an error");
}
}
public void addRecords()
{
try {
output = new BufferedWriter(new FileWriter(file,true));
output.write(x.format("%s %s %s \n", rollno, fname, lname).toString());
} catch (IOException e) {
e.printStackTrace();
}
}
public void closeFile()
{
x.close();
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
根据Java文档,每次创建格式化程序对象时,它都会覆盖文件。您可以看到它。试试这个:
import java.io.*;
import java.lang.*;
import java.util.*;
public class ffile
{
private File file;
BufferedWriter output;
private Formatter x;
Scanner sc = new Scanner(System.in);
int rollno;
String fname, lname;
public void get()
{ System.out.println("Enter rollno: ");
rollno = sc.nextInt();
System.out.println("Enter first name: ");
fname = sc.next();
System.out.println("Enter last name: ");
lname = sc.next();
}
public void openFile()
{ try
{
x = new Formatter();
file = new File("xyz.txt");
}
catch(Exception e)
{ System.out.println("You have an error");
}
}
public void addRecords()
{
try {
output = new BufferedWriter(new FileWriter(file,true));
output.write(x.format("%s %s %s \n", rollno, fname, lname).toString());
} catch (IOException e) {
e.printStackTrace();
}
}
public void closeFile()
{
x.close();
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
谢谢它的工作,但当记录被添加,然后我希望它添加到一个新的行。因此我编写了代码
x.format(“%s%s%s\n”,rollno,fname,lname)代码>但它不起作用..对于新行,您可以添加以下内容:x.format(“%s”,“\n”)代码>希望这能帮助你:)谢谢。它的工作,但当记录被添加,然后我希望它添加到一个新的行。因此我编写了代码x.format(“%s%s%s\n”,rollno,fname,lname)代码>但它不起作用..对于新行,您可以添加以下内容:x.format(“%s”,“\n”)代码>希望这能帮助您:)对于我写的新行:x.format(“%s”,”\n”)我还尝试使用x.format(“%s%s%s\n”,rollno,fname,lname)编写代码我还尝试使用代码x.format(“\n%s%s%s”,rollno,fname,lname)编写代码代码>但它不起作用。我有Windows 8.1,我的jdk是jdk1.8.0_05。嗯,我安装的jdk版本与你的不同。我使用的是Ubuntu,我的jdk版本是jdk1.6。不确定,但我也会用你的测试对于新行,我写:x.format(“%s”,“\n”)我还尝试使用x.format(“%s%s%s\n”,rollno,fname,lname)编写代码我还尝试使用代码x.format(“\n%s%s%s”,rollno,fname,lname)编写代码代码>但它不起作用。我有Windows 8.1,我的jdk是jdk1.8.0_05。嗯,我安装的jdk版本与你的不同。我使用的是Ubuntu,我的jdk版本是jdk1.6。不确定,但我也会用你的测试