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界面的,里面放了一个大的多行文本框,请问怎么调用这个类里的方法来实现填充数据 展开
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界面的,里面放了一个大的多行文本框,请问怎么调用这个类里的方法来实现填充数据 展开
4个回答
展开全部
可以通过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流会一直存在,直到程序运行结束。
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流会一直存在,直到程序运行结束。
展开全部
FileLineReader 必须提供一个读取data的方法getData()用来返回文件内容,然后swing可以调用
FileLineReader reader = new FileLineReader ("xx.txt");
reader.readFile("UTF-8");
LinkedList<String> data = reader.getData();
swing那里只要读取data list的内容显示就可以了
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一样的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先在界面中添加一个panel或者文本域,然后调用其setValue("读出来的txt里面的内容")方法.应该就可以了.好久没有用到这些东西了,印象中是这样的.
追问
我现在只是有读取文件这个类,但是我都不知道怎么用这个类
追答
先得到这个类的对象,然后用对象调用方法么.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你写的数据保存在一个字符串里面,比如:String str = 你的数据;
然后 JTextArea area = new JTextArea(10, 10);
area.setText(str);
然后 JTextArea area = new JTextArea(10, 10);
area.setText(str);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询