Я начинаю изучать Java. Я застрял, чтобы моя простая программа работала. Цель состоит в том, чтобы взять текстовый файл, чтобы добавить его к строковому значению. Затем измените строку. Показать исходный текст Затем отобразить измененный текст.Java Общие объекты
Проблема заключается в том, что оба объекта показывают измененную строку. Я понимаю, что если бы я сказал object = object2, и я изменил объект object2, это было бы осуществлено, так как я скопировал ссылку на объект.
или текстовый файл считается объектом в этом случае? Как мне обойти это?
import java.util.Scanner;
import java.io.File;
public class StartUpFile
{
private String fileText;
/**
* Constructor for objects of class StartUpFile
*/
public StartUpFile(String fileName)
{
readFile(fileName);
}
/**
* Loads the text file into the class\object
*/
public void readFile(String fileName)
{
fileText = "";
try
{
Scanner file = new Scanner(new File(fileName));
while (file.hasNextLine())
{
String line = file.nextLine();
fileText += line + "\n";
}
file.close();
}
catch (Exception e)
{
System.out.println(e);
}
}
public String showFileText()
{
return fileText;
}
public void modifyFileText()
{
fileText = fileName.replaceAll("Q", "z");
}
}
public class ModifyStartupFile
{
public static void main(String[] args)
{
StartUpFile startup = new StartUpFile("1.startup");
StartUpFile startupModified = new StartUpFile("1.startup");
System.out.println(startup.showText());
startupModified.modifyFileText();
System.out.println(startupModified.showText());
}
}
Содержимое файла: QQQQQQQQQQQQQQQ
ожидается выход:
QQQQQQQQQQQQQQQ zzzzzzzzzzzzzzz
Предлагаю напечатать оригинальную строку ** перед ** ее модификацией. С точки зрения пользователя, это одно и то же. –
Но разве я этого не делаю? – Minerbob
Извините, я сейчас более внимательно смотрю на ваш код. Я не совсем понимаю, с чем вы столкнулись. Это поможет, если вы покажете пример запуска вашей программы и объясните, как фактический вывод отличается от того, что вы хотите. –