
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容,之后将内容增加到JTextArea。
BufferedReader bre = null;
try {
String file = "D:/test/testtxt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = brereadLine())!= null) // 判断最后一行不存在,为空结束循环
{
JTextAreaadd(str);//此处将内容写入到JTextArea即可
};
备注: 流用完之后必须close掉,如上面的就应该是:breclose(),否则bre流会一直存在,直到程序运行结束。
不知道有这样的方法给你说一下我的思路:
把返回的字符串进行处理,对回车\n进行判断来截取字符串然后看你想要哪个再取出来就行了
public static String getRowText(int row,String text){
String string="";
String regex = "\n";
Pattern p =Patterncompile(regex);
String[] r = psplit(text);
if(!((r[row-1]trim())equals(""))){
string = r[row-1];
}
return string;
}
这是我刚按照你的要求写的方法,调用的时候要把行数,JTEXTAREA中的字符串
首先引入类包 import javautilregexPattern;
getposition的方法 好像是返回光标位置 int
getText是返回文本全部内容 String
然后用上面这个StringindexOf(int)不就O了
// 设置事件监听器,动态显示行数和列数textaddCaretListener(new CaretListener(){public void caretUpdate(CaretEvent e){try{int pos = textgetCaretPosition();//获取行数int lineOfC = textgetLineOfOffset(pos) + 1;//获取列数int col = pos - textgetLineStartOffset(lineOfC - 1) + 1;jlsetText(当前光标位置 + lineOfC + 行 , + col + 列 );}catch(Exception ex){jlsetText( 无法获得当前光标位置);}}});
//完美实现import javaawtBorderLayout;
import javaxswing;
import javaxswingevent;
public class CaretDemo extends JFrame {
private JTextArea editor;
private JTextField status;
public CaretDemo() {
setTitle("Caret Demo");
setSize(500,500);
setLayout(new BorderLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
editor = new JTextArea();
editoraddCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
JTextArea editArea = (JTextArea)egetSource();
int linenum = 1;
int columnnum = 1;
try {
int caretpos = editAreagetCaretPosition();
linenum = editAreagetLineOfOffset(caretpos);
columnnum = caretpos - editAreagetLineStartOffset(linenum);
linenum += 1;
}
catch(Exception ex) { }
updateStatus(linenum, columnnum);
}
});
add(editor, BorderLayoutCENTER);
status = new JTextField();
add(status, BorderLayoutSOUTH);
updateStatus(1,1);
}
private void updateStatus(int linenumber, int columnnumber) {
statussetText("第 " + linenumber + " 行, 第 " + columnnumber+" 列 ");
statussetHorizontalAlignment(JTextFieldRIGHT);
}
public static void main(String args[]) {
CaretDemo caretDemoApp = new CaretDemo();
caretDemoAppsetVisible(true);
}
}
以上就是关于java根据文件名 读取文本文件的内容逐行显示到JTextArea里全部的内容,包括:java根据文件名 读取文本文件的内容逐行显示到JTextArea里、java里的JTextArea对象怎样返回指定行的字符串、Java如何获取JTextArea上输入的字符等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)