java读取txt文件(已有读取文件类) 将读取的文件内容按行填充在swing界面中

读取文件类importjava.io.File;importjava.util.LinkedList;/***文件的行读取器.可以将文件读取到一个list中然后可以分别按... 读取文件类
import java.io.File;
import java.util.LinkedList;

/**
* 文件的行读取器. 可以将文件读取到一个list中然后可以分别按行读取
*
* @author ludj
*/
public class FileLineReader {
private File srcFile;

private LinkedList<String> data = new LinkedList<String>();

/**
* 用文件路径名构造一个读取器
*
* @param fileName
* 文件名
*/
public FileLineReader(String fileName) {
this(new File(fileName));
}

/**
* 用文件对象构造一个读取器
*
* @param file
* 文件对象
*/
public FileLineReader(File file) {
srcFile = file;
}

/**
* 用默认的UTF-8读取指定的文件配置
*
* @return 返回文件总的记录数
*/
public int readFile() {
return readFile("UTF-8");
}

/**
* 开始分析指定文件
*
* @return 返回正确读入的行数
*/
public int readFile(String charset) {
if (srcFile == null) {
return -1;
}

// 打开文件.
LineByteArrayInputStream br = null;
byte[] b = FileUtil.file2Bytes(srcFile);
br = new LineByteArrayInputStream(b);
br.setCharset(charset);
String tt = null;
while ((tt = br.readLine()) != null) {
data.add(tt);
}

// 返回行数.
return data.size();
}

/**
* 获得读取后的数据行数
*
* @return 返回总行数
*/
public int getLineCount() {
return data.size();
}

/**
* 返回指定行号的字符串
*
* @param x
* 行号
* @return 如果行号越界, 则返回null
*/
public String getLine(int x) {
if (x < 0 || x >= data.size()) {
return null;
}

return data.get(x);
}

/**
* 释放当前资源, 清空内存数据
*/
public void clear() {
data.clear();
}
}

我自己另写了一个类是swing界面的,里面放了一个大的多行文本框,请问怎么调用这个类里的方法来实现填充数据
展开
 我来答
198901245631
推荐于2016-02-20 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1734万
展开全部
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容,之后将内容增加到JTextArea。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
JTextArea.add(str);//此处将内容写入到JTextArea即可
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
flyingFish211
推荐于2017-12-16 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
FileLineReader 必须提供一个读取data的方法getData()用来返回文件内容,然后swing可以调用
FileLineReader reader = new FileLineReader ("xx.txt");
reader.readFile("UTF-8");

LinkedList<String> data = reader.getData();

swing那里只要读取data list的内容显示就可以了
更多追问追答
追问
那请问getData()怎么写呢,就一般的get和set就可以了吧
swing那里只要读取data list的内容显示就可以了 怎么弄,就一般的遍历可以吗,我想把文件读取的结果一行行显示在一个多行文本框里
追答
getData(), 普通的set get就可以了 

swing里面遍历和你遍历普通list一样的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我的逆云之鹰
2012-02-14 · 超过17用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:44万
展开全部
先在界面中添加一个panel或者文本域,然后调用其setValue("读出来的txt里面的内容")方法.应该就可以了.好久没有用到这些东西了,印象中是这样的.
追问
我现在只是有读取文件这个类,但是我都不知道怎么用这个类
追答
先得到这个类的对象,然后用对象调用方法么.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石原里美fUOm6
2012-02-14 · TA获得超过105个赞
知道答主
回答量:98
采纳率:0%
帮助的人:51.3万
展开全部
把你写的数据保存在一个字符串里面,比如:String str = 你的数据;
然后 JTextArea area = new JTextArea(10, 10);
area.setText(str);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式