Java 我可以用一种方法读写不同的txt文件吗(im读取的文件中的内容会被删除)?
我想创建一个方法,读取一个特定的.txt文件,与另一个指定给数组的特定.txt文件进行比较,如果它们不匹配,则编写一个.txt文件来打印问题。在读取另一个.txt文件时是否可以写入.txt文件? (注意:我使用PrintWriter写入文件,使用扫描仪读取文件)Java 我可以用一种方法读写不同的txt文件吗(im读取的文件中的内容会被删除)?,java,file-io,Java,File Io,我想创建一个方法,读取一个特定的.txt文件,与另一个指定给数组的特定.txt文件进行比较,如果它们不匹配,则编写一个.txt文件来打印问题。在读取另一个.txt文件时是否可以写入.txt文件? (注意:我使用PrintWriter写入文件,使用扫描仪读取文件) 公共静态void updateInventory(字符串filename1、字符串filename2、字符串[]name1、int[]数量1){ 文件更新=新文件(文件名1); 扫描仪输入=新扫描仪(更新); 文件日志=新文件(file
公共静态void updateInventory(字符串filename1、字符串filename2、字符串[]name1、int[]数量1){
文件更新=新文件(文件名1);
扫描仪输入=新扫描仪(更新);
文件日志=新文件(filename2);
PrintWriter输出=新的PrintWriter(日志);
int i=0;
while(input.hasNext()){
做{
字符串s=input.next();
s=s.substring(0,1).toUpperCase()+s.substring(1).toLowerCase();
如果(s==name1[i]){
int num=input.nextInt();
如果(num>=0&&num
您的代码需要以下改进:
string1.equals(string2)
而不是string1==string2
将string1
与string2
进行比较nextInt()
之前,请先使用hasNextInt()
while
循环的终止条件,考虑所有方面,例如可能使其无限运行的值和while
循环中的代码使用的值public static void updateInventory(String filename1, String filename2, String[] name1, int[] quantity1) {
File updated = new File(filename1);
Scanner input = null;
try {
input = new Scanner(updated);
} catch (FileNotFoundException e) {
System.out.println("Error reading file, " + filename1);
}
FileWriter log = null;
PrintWriter output = null;
try {
log = new FileWriter(filename2, true);
output = new PrintWriter(log);
} catch (Exception e) {
System.out.println("Error creating log file, " + filename2);
}
int i = 0;
int num = 0;
String s;
while (input != null && input.hasNext() && i < name1.length && i < quantity1.length) {
s = input.next();
s = s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
if (s.equals(name1[i]) && input.hasNextInt()) {
num = input.nextInt();
if (num >= 0 && num < quantity1[i]) {
quantity1[i] -= num;
}
}
if (i == name1.length) {
output.println("ERROR: Item " + s + " not found");
}
if (num < 0) {
output.println("ERROR: Invalid amount requested (" + num + ")");
}
i++;
}
output.close();
input.close();
}
公共静态void updateInventory(字符串filename1、字符串filename2、字符串[]name1、int[]数量1){
文件更新=新文件(文件名1);
扫描仪输入=空;
试一试{
输入=新扫描仪(更新);
}catch(filenotfounde异常){
System.out.println(“读取文件时出错,”+filename1);
}
FileWriter日志=null;
PrintWriter输出=null;
试一试{
log=新的FileWriter(filename2,true);
输出=新的PrintWriter(日志);
}捕获(例外e){
System.out.println(“创建日志文件时出错,”+filename2);
}
int i=0;
int num=0;
字符串s;
while(input!=null&&input.hasNext()&&i=0&&num
我已经使用一些虚拟值测试了这段代码。如果在使用过程中遇到任何问题,请随时发表评论。您的代码需要以下改进:
string1.equals(string2)
而不是string1==string2
将string1
与string2
进行比较nextInt()
之前,请先使用hasNextInt()
while
循环的终止条件,考虑所有方面,例如可能使其无限运行的值和while
循环中的代码使用的值public static void updateInventory(String filename1, String filename2, String[] name1, int[] quantity1) {
File updated = new File(filename1);
Scanner input = null;
try {
input = new Scanner(updated);
} catch (FileNotFoundException e) {
System.out.println("Error reading file, " + filename1);
}
FileWriter log = null;
PrintWriter output = null;
try {
log = new FileWriter(filename2, true);
output = new PrintWriter(log);
} catch (Exception e) {
System.out.println("Error creating log file, " + filename2);
}
int i = 0;
int num = 0;
String s;
while (input != null && input.hasNext() && i < name1.length && i < quantity1.length) {
s = input.next();
s = s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
if (s.equals(name1[i]) && input.hasNextInt()) {
num = input.nextInt();
if (num >= 0 && num < quantity1[i]) {
quantity1[i] -= num;
}
}
if (i == name1.length) {
output.println("ERROR: Item " + s + " not found");
}
if (num < 0) {
output.println("ERROR: Invalid amount requested (" + num + ")");
}
i++;
}
output.close();
input.close();
}
公共静态void updateInventory(字符串filename1、字符串filename2、字符串[]name1、int[]数量1){
文件更新=新文件(文件名1);
扫描仪输入=空;
试一试{
输入=新扫描仪(更新);
}catch(filenotfounde异常){
System.out.println(“读取文件时出错,”+filename1);
}
FileWriter日志=null;
PrintWriter输出=null;
试一试{
log=新的FileWriter(filename2,true);
输出=新的PrintWriter(日志);
}捕获(例外e){
System.out.println(“创建日志文件时出错,”+filename2);
}
int i=0;
int num=0;
字符串s;
while(input!=null&&input.hasNext()&&i=0&&num
我已经使用一些虚拟值测试了这段代码。如果您在使用时遇到任何问题,请随时发表评论。请发布一些您迄今为止尝试过的代码。“是否可以在读取另一个.txt文件时编写一个.txt文件?”--是的,当然有可能。我在PrintWriter output=new PrintWriter(log)行之后添加了代码@plochie),它会删除另一个文件的内容…请发布一些您迄今为止尝试过的代码。“是否可以在读取另一个.txt文件时写入.txt文件?”--是的,当然有可能。我在PrintWriter output=new PrintWriter(log)行后添加了代码@plochie,它会删除另一个文件的内容。