그래서 저는 텍스트 편집기를 설계하고 있습니다. Open/Save 메소드의 경우, TextArea를 사용하려고합니다 (하나 일 필요는 없으며, 현재의 방법입니다). 이제는 두 가지 문제가 있습니다.TextArea - 모든 텍스트를 가져 오는 방법은 무엇입니까?
1) 파일을로드 할 때 현재 현재 텍스트 편집기에있는 내용이 제거되지 않습니다. 예를 들어, "Owl"을 입력하고 "Rat"이 포함 된 파일을로드하면 "OwlRat"이됩니다. 이 문제를 해결하기 위해 replaceRange 메서드를 사용할 계획입니다. (다시 말하지만 절대적이지는 않습니다. 어떤 제안이라도 좋습니다!). 그러나 선택한 텍스트뿐만 아니라 텍스트 편집기의 모든 내용을 대체해야하며이를 수행하는 방법을 알 수 없습니다. 어떤 팁?
2) 현재 파일을로드 할 때 응용 프로그램을 실행할 때 파일을 저장하지 않으면 아무 일도 일어나지 않습니다. 예를 들어, 프로그램 실행, 파일 저장, 프로그램 닫기, 프로그램 실행, 파일로드 등은 아무 것도하지 않습니다. String x가 이월되지 않기 때문에 이것이 알지만, 어쨌든 그것을 고칠 생각은 없습니다. 누군가 벡터를 제안,하지만 난 여기에
열기/저장 방법에 대한 코드입니다 ... 그들이 도움이 표시되지 않습니다 :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)
{
}
}
}
예외를 기록하는 방법. 'x'는 무엇입니까? –
1) 코드 블록에 일관성 있고 논리적 인 들여 쓰기를 사용하십시오. 2) "catch"마다 e.printStackTrace();를 추가하십시오. 3) 일반적인 [Java 명명 규칙] (http://java.sun.com/docs/books/jls/second_edition/html/names)을 배우십시오. doc.html # 73307) (특히 이름에 사용 된 사례)을 클래스, 메소드 및 속성 이름에 사용하고 일관되게 사용하십시오. –
['JTextComponent.read (Reader, Object)'] 사용 (http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html#read%28java.io)을 고려하십시오. Reader, % 20java.lang.Object % 29) & ['write (Writer)'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html#write % 28java.io.Writer % 29). 더 강력합니다. –