将文本从jTextArea保存(即另存为)到新的.txt文件中

我正忙于将文字处理程序作为我的项目之一,我需要将输入jTextArea的文本另存为.txt文件,并带有用户选择的名称和位置。注意“

fc”是我已经声明的文件选择器的名称。

   public class TextEditor extends javax.swing.JFrame {

int count = 2;

JTextArea n = new JTextArea();

final JFileChooser fc = new JFileChooser();

public void SaveAs() {

final JFileChooser SaveAs = new JFileChooser();

SaveAs.setApproveButtonText("Save");

int actionDialog = SaveAs.showOpenDialog(this);

File fileName = new File(SaveAs.getSelectedFile() + ".txt");

try {

if (fileName == null) {

return;

}

BufferedWriter outFile = new BufferedWriter(new FileWriter(fileName));

outFile.write(n.getText()); //put in textfile

outFile.close();

} catch (IOException ex) {

}

}

回答:

我将使用JTetArea自己的write方法,因为这将使写入文件变得容易,并将很好地处理所有换行。例如(并借用您的代码):

public class TextEditor extends JFrame {

int count = 2;

JTextArea n = new JTextArea();

final JFileChooser fc = new JFileChooser();

public void SaveAs() {

final JFileChooser SaveAs = new JFileChooser();

SaveAs.setApproveButtonText("Save");

int actionDialog = SaveAs.showOpenDialog(this);

if (actionDialog != JFileChooser.APPROVE_OPTION) {

return;

}

File fileName = new File(SaveAs.getSelectedFile() + ".txt");

BufferedWriter outFile = null;

try {

outFile = new BufferedWriter(new FileWriter(fileName));

n.write(outFile); // *** here: ***

} catch (IOException ex) {

ex.printStackTrace();

} finally {

if (outFile != null) {

try {

outFile.close();

} catch (IOException e) {

// one of the few times that I think that it's OK

// to leave this blank

}

}

}

}

}

您的代码中有一些错误。例如,这可行

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.io.*;

import javax.swing.*;

import javax.swing.filechooser.FileNameExtensionFilter;

@SuppressWarnings("serial")

public class TextEditor extends JFrame {

int count = 2;

JTextArea textArea = new JTextArea(10, 30);

final JFileChooser fc = new JFileChooser();

public TextEditor() {

add(new JScrollPane(textArea));

add(new JPanel(){{add(new JButton(new AbstractAction("Save As") {

@Override

public void actionPerformed(ActionEvent arg0) {

saveAs();

}

}));}}, BorderLayout.SOUTH);

}

public void saveAs() {

FileNameExtensionFilter extensionFilter = new FileNameExtensionFilter("Text File", "txt");

final JFileChooser saveAsFileChooser = new JFileChooser();

saveAsFileChooser.setApproveButtonText("Save");

saveAsFileChooser.setFileFilter(extensionFilter);

int actionDialog = saveAsFileChooser.showOpenDialog(this);

if (actionDialog != JFileChooser.APPROVE_OPTION) {

return;

}

// !! File fileName = new File(SaveAs.getSelectedFile() + ".txt");

File file = saveAsFileChooser.getSelectedFile();

if (!file.getName().endsWith(".txt")) {

file = new File(file.getAbsolutePath() + ".txt");

}

BufferedWriter outFile = null;

try {

outFile = new BufferedWriter(new FileWriter(file));

textArea.write(outFile);

} catch (IOException ex) {

ex.printStackTrace();

} finally {

if (outFile != null) {

try {

outFile.close();

} catch (IOException e) {}

}

}

}

private static void createAndShowGui() {

TextEditor frame = new TextEditor();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setLocationByPlatform(true);

frame.setVisible(true);

}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

createAndShowGui();

}

});

}

}

以上是 将文本从jTextArea保存(即另存为)到新的.txt文件中 的全部内容, 来源链接: utcz.com/qa/412049.html

回到顶部