我有这段代码,我无法弄清楚什么是无效的。我尝试了所有可能的组合,但我无处可去。这个代码的要点是它应该将文本文件和内容复制到另一个文件中,当第三个参数是" r"时。这工作正常,但当我尝试将内容附加到文件中时,它不会工作,我无法理解。这是下面的代码。 我把那个不起作用的部分分开了。
import java.io.*;
public class Copy
{
public static void main(String[] args)
{
if(args.length == 3)
{
try
{
FileReader inputFile = new FileReader(args[0]);
FileWriter outputFile = new FileWriter(args[1]);
int chr = inputFile.read();
while (chr != -1)
{
outputFile.write(chr);
chr = inputFile.read();
}
outputFile.flush();
if(args[2].equals("r"))
{
chr = inputFile.read();
while(chr != -1)
{
outputFile.write(chr);
chr = inputFile.read();
}
outputFile.flush();
}
else if(args[2].equals("a"))
{
chr = inputFile.read();
while(chr != -1)
{
outputFile.write(chr);
chr = inputFile.read();
}
outputFile.flush();
}
}
catch(IOException e)
{
System.out.println("Exception: " + e.getMessage());
}
}
else
{
System.out.println("Invalid number of args. Program will exit.");
System.exit(0);
}
}
}
答案 0 :(得分:0)
在第一个>>> l = [(451,165,76,-77,[98,42])]
>>> l[0]
(451, 165, 76, -77, [98, 42])
>>> l[0][0]
451
>>> l[0][1]
165
>>> l[0][3]
-77
>>> l[0][4]
[98, 42]
>>> l[0][4][0]
98
>>> l[0][4][1]
42
循环中,您正在读取输入文件并将其完全写入另一个文件。这就是为什么当你再次尝试在while
循环中再次调用read()
时,它会抛出一个异常,因为文件已被完全读取。删除以下代码(第一个while循环):
if...
并将其替换为
int chr = inputFile.read();
while (chr != -1)
{
outputFile.write(chr);
chr = inputFile.read();
}
outputFile.flush();
编辑: 在你的第二个条件(for append)中使用以下代码:
int chr;
答案 1 :(得分:0)
好的,找到了解决方案。 我需要做的只是在两个if语句中调用FileWriter(" r"&" a")现在它正在按预期工作。谢谢Chetan Jadhav的帮助:)