Java:从这个类中生成一个void方法(textfilechanger)
我想做的是:我的类copytest读取一个文本文件,编辑一个字符,然后将这个新文件保存到一个新目录中。我想用它编写一个void方法,它的作用完全相同,然后可以按以下方式使用:Java:从这个类中生成一个void方法(textfilechanger),java,file,text,methods,void,Java,File,Text,Methods,Void,我想做的是:我的类copytest读取一个文本文件,编辑一个字符,然后将这个新文件保存到一个新目录中。我想用它编写一个void方法,它的作用完全相同,然后可以按以下方式使用: copy(String "C:\\Old.txt", String "C:\\New.txt", int 1, int 1) 现在,copy与我的旧类copytest完全相同,它读取旧文件,编辑并保存它。 我的第一个想法是使用两个文件作为第一个参数,但这显然是不可能的。我的新想法是给这个方法两个字符串,一个是旧文件,一个
copy(String "C:\\Old.txt", String "C:\\New.txt", int 1, int 1)
现在,copy与我的旧类copytest完全相同,它读取旧文件,编辑并保存它。
我的第一个想法是使用两个文件作为第一个参数,但这显然是不可能的。我的新想法是给这个方法两个字符串,一个是旧文件,一个是新文件。它仍然不起作用。我希望,你明白,我想做什么以及如何解决这个问题
旧类别代码(工程):
新的无效代码(首先尝试使用文件作为参数):
新建尝试使用字符串作为参数,但仍然不起作用:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.Scanner;
public class copytestnew {
public void copy(String old, String newone, int x, int y) {
// Location of file to read
File file = new File(old);
Scanner scanner = new Scanner(file);
int lineNumber=y;
int charNumber=x;
String wantedChar="r";
int i=0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (i == lineNumber+2) {
if (line.length() >= charNumber) {
line = line.substring(0,charNumber-1) + wantedChar + line.substring(charNumber);
}
}
String newLine = System.getProperty("line.separator");
// Location of file to output
Writer output = null;
File file2 = new File(newone);
output = new BufferedWriter(new FileWriter(file2, true));
output.write(line);
output.write(newLine);
output.close();
i++;
}
scanner.close();
System.out.println("File copied");
}
}
您正在方法中定义一个函数。由于java中的所有函数都是方法(静态或非静态),因此这是不允许的。试试这个:
class IDontKnowHowToNameIt {
public static void copy(file old, file new, int x, int y) {
//...
// call readFile from here
// ...
}
private static void readFile() throws Exception {
//...
}
}
我记得你!上次我问过你如何替换其中一行的字符 首先,将减赤改为
public static void copy(String old, String newone, int x, int y) throws IOException {
注意抛投状态强>
现在,当您想调用此方法时,您应该在try-catch块或declear中使用它,该块或declear抛出的异常与您在copy函数中所做的相同。
“使用字符串作为参数进行新尝试,但仍然不起作用:…”
请详细说明“仍然不起作用”。它怎么不起作用?怎么了?它编译吗?它会引发异常吗?它会咒骂你,咒骂你,骂你坏话吗?“第一个想法是用两个文件作为第一个参数,但这显然是不可能的……”
——你为什么这么说?如果编码正确,传入文件参数可以很好地工作。非常感谢。很明显你昨天对我问题的评论被删除了。
public void copy(file old, file new, int x, int y) {
public static void readFile() throws Exception {
class IDontKnowHowToNameIt {
public static void copy(file old, file new, int x, int y) {
//...
// call readFile from here
// ...
}
private static void readFile() throws Exception {
//...
}
}
public static void copy(String old, String newone, int x, int y) throws IOException {