所以我正在设计一个文本编辑器。对于打开/保存方法,我正在尝试使用 TextArea(它不必是一个,它只是我当前的方法)。现在,我现在有两个问题:
1)当我加载一个文件时,它当前不会删除文本编辑器中当前的内容。例如,如果我输入“Owl”,然后加载一个包含“Rat”的文件,它最终会变成“OwlRat”。为了解决这个问题,我计划使用 replaceRange 方法(然而,它不是绝对的,任何建议都会很棒!)。但是,我必须替换文本编辑器的所有内容,而不仅仅是选定的文本,而且我不知道该怎么做。有小费吗?
2) 目前,当我加载文件时,除非我在运行应用程序的同时保存该文件,否则什么都不会发生。因此,例如,运行程序、保存文件、关闭程序、再次运行程序,然后加载文件将一无所获。我知道这是因为 String x 没有结转,但无论如何我都想不出修复它。有人建议使用 Vectors,但我看不出它们有什么帮助...
以下是打开/保存方法的代码:
打开:
public void Open(String name){
File textFile = new File(name + ".txt.");
BufferedReader reader = null;
try
{
textArea.append(x);
reader = new BufferedReader( new FileReader( textFile));
reader.read();
}
catch ( IOException e)
{
}
finally
{
try
{
if (reader != null)
reader.close();
}
catch (IOException e)
{
}
}
}
节省:
public void Save(String name){
File textFile = new File(name + ".txt");
BufferedWriter writer = null;
try
{
writer = new BufferedWriter( new FileWriter(textFile));
writer.write(name);
x = textArea.getText();
}
catch ( IOException e)
{
}
finally
{
try
{
if ( writer != null)
writer.close( );
}
catch ( IOException e)
{
}
}
}