gpt4 book ai didi

java - TextArea - 有什么方法可以获取所有文本吗?

转载 作者:行者123 更新时间:2023-12-01 15:11:27 27 4
gpt4 key购买 nike

所以我正在设计一个文本编辑器。对于打开/保存方法,我尝试使用 TextArea (它不必是一个,它只是我当前的方法)。现在,我现在有两个问题:

1) 当我加载文件时,它当前不会删除文本编辑器中当前的内容。例如,如果我输入“Owl”,然后加载包含“Rat”的文件,它最终会显示为“OwlRat”。为了解决这个问题,我计划使用 ReplaceRange 方法(不过,这也不是绝对的,任何建议都很棒!)。但是,我必须替换文本编辑器的所有内容,而不仅仅是选定的文本,而且我不知道该怎么做。有什么建议吗?

2) 目前,当我加载文件时,除非我在运行应用程序的同时保存该文件,否则不会发生任何情况。因此,例如,运行程序,保存文件,关闭程序,再次运行程序,然后加载文件将不会给出任何结果。我知道这是因为字符串 x 没有保留,但我想不出解决办法。有人建议使用 vector ,但我不知道它们有什么帮助......

以下是打开/保存方法的代码:

打开:

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)
{
}
}
}

最佳答案

我的男朋友也遇到了同样的问题,经过深思熟虑和研究,我什至找到了解决方案。

你可以使用ArrayList来放置TextArea的所有内容并通过调用save作为参数发送,因为作者只是写了字符串行,然后我们使用“for”逐行写入最后的ArrayList我们将在 txt 文件中添加 TextArea 内容。如果有些事情没有意义,我很抱歉谷歌翻译和我不会说英语。

观察Windows记事本,它不会总是跳行,并且全部显示在一行中,使用写字板就可以了。

<小时/>

私有(private) void SaveActionPerformed(java.awt.event.ActionEvent evt) {

    String NameFile = Name.getText();
ArrayList< String > Text = new ArrayList< String >();

Text.add(TextArea.getText());

SaveFile(NameFile, Text);
}
<小时/>

public void SaveFile(String name, ArrayList< String> message) {

    path = "C:\\Users\\Paulo Brito\\Desktop\\" + name + ".txt";

File file1 = new File(path);

try {

if (!file1.exists()) {

file1.createNewFile();
}


File[] files = file1.listFiles();


FileWriter fw = new FileWriter(file1, true);

BufferedWriter bw = new BufferedWriter(fw);

for (int i = 0; i < message.size(); i++) {

bw.write(message.get(i));
bw.newLine();
}

bw.close();
fw.close();

FileReader fr = new FileReader(file1);

BufferedReader br = new BufferedReader(fr);

fw = new FileWriter(file1, true);

bw = new BufferedWriter(fw);

while (br.ready()) {

String line = br.readLine();

System.out.println(line);

bw.write(line);
bw.newLine();

}
br.close();
fr.close();

} catch (IOException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "Error in" + ex);
}

关于java - TextArea - 有什么方法可以获取所有文本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com