java swing 怎么同时读取多个txt文档,然后一对一的给对应的JTextArea

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java swing 怎么同时读取多个txt文档,然后一对一的给对应的JTextArea相关的知识,希望对你有一定的参考价值。

java swing 怎么同时读取多个txt文档,然后一对一的给对应的JTextArea

有知道兄台给个示例吧 谢谢啦

(我主要想做的是这样的:有6个JTextArea 和几个按钮,假如俺按钮A,6个JTextArea 同时从6个txt文件中读取文件。 然后按按钮B,去点原来的内容,从另外6个txt文件中读取内容。)

可以用多线程。写个类,实现Runnable,run方法中是读取文件代码。留个口,设置路径参数。
Class ReadFile implements Runnale
private path;
public ReadFile(String path)
this.path = path

public void run()//读取文件代码

外部可以同时调用6个,或者写循环
new Thread(New ReadFile(path)).start()追问

能帮忙写下代码吗 = = 不会啊。。。

我用最脑残的办法。。。写了6个bufferedReader 。 地址都为参数。。。在按钮的事件中写上6个参数的str

追答

代码其实你也得差不多了,虽然我不知道你的代码怎么写的
你只需要将读取文件的方法摘出来放到run方法中,然后对于留个地址,提前先初始化成一个list或者其他容器作为参数,这样可读性比较好。你只需要在点击按钮时,
for (int i = 0; i < list.size() ; i++)
new Thread(New ReadFile(list.get(i))).start();


有一种情况就是你的路径要有规律可循,如果随意路径可以在界面上手动设置

参考技术A private void load(File source, JTextArea target)
String temp = target.getText();

target.setText("");
try(FileReader reader = new FileReader(source))

kit.read(reader , target.getDocument(), 0);
catch(Exception e)
target.setText(temp);




private DefaultEditorKit kit = new DefaultEditorKit();追问

这。 怎么读6个呢?

追答

调用6次load方法。

参考技术B 貌似想同时做的事情只有多线程

txt文档的读取和写入

下面介绍一种用于持久化存储数据的简单的方式:通过txt文档进行数据的持久化存储,我们可以通过txt文档的方式存储保存的内容数据,也可以存储相应的配置信息的数据,这些我们都可以通过txt文档的方式进行存储,

只有持久化的数据才能更加利于我们每次查看数据更加的直观,同时每次修改数据也更加容易,今天我们介绍一些txt文档存储数据的方法:

 

下面代码主要用于进行txt文档内容的写入和读取:

    //这个方法的作用是读取txt文档中的内容
    public string ReadTxt(string FileName)
    {
        //表示的是要进行存储的所有的内容
        string m_Str = "";
        string[] strs = File.ReadAllLines(FileName);//读取文件的所有行,并将数据读取到定义好的字符数组strs中,一行存一个单元
        for (int i = 0; i < strs.Length; i++)
        {
            if (int.Parse(strs[i]) != 0)
            {
                m_Str += strs[i];//读取每一行,并连起来
                m_Str += "\n";//每一行末尾换行
            }
 
        }
        return m_Str;
    }
 
    /// <summary>
    /// 这个方法的作用是将Json解析的文档放入到txt中
    /// </summary>
    /// <param name="path">写入的路径</param>
    /// <param name="TxtName">写入的文件名</param>
    /// <param name="writeMessage">写入的内容</param>
    /// <returns></returns>
    public bool WriteTxt(string path, string TxtName, string writeMessage)
    {
        //这里用来判断追加的内容是否与已经存在的内容是否一致如果一致 将不进行追加
        if (ReadTxt(Path.Combine(path, TxtName)).Equals(writeMessage))
        {
            return false;
        }
        StreamWriter writer;
        FileInfo file = new FileInfo(Path.Combine(path, TxtName));
        if (!file.Exists)
        {
            writer = file.CreateText();
        }
        else
        {
            writer = file.AppendText();
        }
        writer.WriteLine(writeMessage);
        writer.Flush();
        writer.Dispose();
        writer.Close();
        return true;
    }

其中我们进行文档的存储的方式为:  WriteTxt("c://Data","123.txt","1234567");

其中我们进行文档的读写的方式为:  ReadTxt("c://Data//123.txt");

 

以上就是我们进行持久化存储的第一种方式,以后我们会介绍其他的方式欢迎大家的关注!!!!!!!

以上是关于java swing 怎么同时读取多个txt文档,然后一对一的给对应的JTextArea的主要内容,如果未能解决你的问题,请参考以下文章

JAVA 图书管理系统,怎么用流读取TXT文档在控制台显示

java io读取文件时 数据中有连续多个空格怎么处理

用java做一个窗口

如何在JSF页面中执行Java Swing代码

JAVA读取文件夹里的文件目录到TXT

Delphi 怎么读取txt文档