java根据文件名 读取文本文件的内容逐行显示到JTextArea里

java根据文件名 读取文本文件的内容逐行显示到JTextArea里,第1张

可以通过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上输入的字符等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9450632.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存