私は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
予想される出力:modifyFile
で
QQQQQQQQQQQQQQQ zzzzzzzzzzzzzzz
元の文字列**を**変更する前に印刷することをおすすめします。ユーザーの視点から見ると、これは同じことです。 –
しかし、私はこれをしないのですか? – Minerbob
申し訳ありません、あなたのコードをちょうど詳しく見ています。私はあなたが何を問題にしているのか本当に理解していない。プログラムの実行例を表示し、実際の出力がどのように異なるかを説明すると役に立ちます。 –