JAVA中将JTextArea组件中的数据写入文件如何实现换行

部分代码如下:try{fw=newFileWriter(FilePath(path));bw=newBufferedWriter(fw);bw.write(Jtextar... 部分代码如下:

try {
fw = new FileWriter ( FilePath ( path ) );
bw = new BufferedWriter ( fw );
bw.write( JtextareaClass.jtextarea1.getText() );
bw.newLine();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
运行后写入文件中的数据都到一行去了,请问如何实现换行,谢谢
按照四楼的方法依旧不行。。。
try {
fos = new FileOutputStream ( FilePath ( path ) );
pw = new PrintWriter(fos);
pw.write( JtextareaClass.jtextarea1.getText() );
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
这是改动后的代码,换行还是不能正常进行,谢谢解答- -

回五楼:不是抛出异常- - 是不能正常换行。。。
比如JTextArea中如下内容:
include XXX
INT XXX
输出到TXT文件中会变成include XXXINT XXX
展开
 我来答
czj880123
推荐于2016-11-20 · TA获得超过592个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:200万
展开全部
你把流换成
FileOutputStream fos=new FileOutputStream(String FilePath);

PrintWriter pw=new PrintWriter(fos);

pw.writer(JtextareaClass.jtextarea1.getText() );

试试

我写了一个,试了没问题,解决办法就是对JtextArea添加键盘监听,当按下enter键时自动添加一个换行符\r,全部代码如下:

package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.FileOutputStream;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class Test implements ActionListener,KeyListener{
JTextArea jta;

/**
* 空参构造方法
*/
public Test() {
JFrame jf=new JFrame("Test");
JPanel jp=new JPanel();
jta=new JTextArea(10,20);
jta.addKeyListener(this);//添加键盘监听
JButton b=new JButton("输出");
b.addActionListener(this);

jp.add(jta);
jp.add(b);
jf.add(jp);

jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

@Override
public void actionPerformed(ActionEvent e) {
try {
FileOutputStream fos=new FileOutputStream("D:/1.txt");
fos.write(jta.getText().getBytes());
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}

}

/**
* 键盘按下时执行
*/
@Override
public void keyPressed(KeyEvent e) {
//当按下Enter键时,插入一个换行符(Enter键的keycode为10)
if(e.getKeyCode()==10){
jta.append("\r");
}
}

@Override
public void keyReleased(KeyEvent e) {
}

@Override
public void keyTyped(KeyEvent e) {
}

/**
* main方法
* @param args
*/
public static void main(String[] args) {
new Test();
}
}
车速10码
2010-08-08 · TA获得超过631个赞
知道小有建树答主
回答量:444
采纳率:100%
帮助的人:118万
展开全部
一行一行的写,可以不?
JTextArea ta=JtextareaClass.jtextarea1;
for(int i = 0; i < ta.getRows(); i++){
String str = ta.getText(ta.getLineStartOffset(i),ta.getLineEndOffset(i);
pw.write(str+"\r\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7893292
2010-08-07 · TA获得超过844个赞
知道小有建树答主
回答量:1088
采纳率:83%
帮助的人:682万
展开全部
bw.write("\r\n"); //换行的

我在想,你不会是用记事本打开,同时你的记事本没有设置为强制换行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦魇后的思念
2010-08-07
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
抛出什么异常?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式