Java设计并实现一个应用程序,能够读取一个文本文件中的内容并显示,同时能够计算出文本中的行数。

如题所述

java编写显示文本的应用程序, 需要用到图形界面GUI编程技术.

步骤一: 需要搭建一个整体的外观,  调整布局和组件的位置.

主要需要使用的组件

JTextField 文本框组件: 用于当做地址栏, 填写文件的路径

JButton 按钮, 用于响应点击事件,根据地址栏的地址读取文件, 并且显示到文本域里

JTextArea 文本域, 用于显示文件里的字符串信息

JLabel  标签, 用于显示行数信息

布局: 使用边界布局BorderLayout,可以快速按照上下左右中的位置快速布局.

步骤二: IO流,读取文本文件信息,并统计行数.

由于要按行读取,方便计算文件的行数, 所以使用Buffered 可以事半功倍.

核心代码如下

StringBuffer txtbuf=new StringBuffer();//用于保存文本信息
int lines=0;//用于计算行数
try {
BufferedReader br = new BufferedReader(new FileReader(fp));
String hasRead=null;
while((hasRead=br.readLine())!=null){
txtbuf.append(hasRead+"\n");
lines++;
}
br.close();//IO流用完记得关闭
} catch (Exception e) {
//当IO出现异常时,要进行提示
JOptionPane.showMessageDialog(this, "文件读取错误,确认文件存在,\n或者没有被其他文件打开.","IO错误",JOptionPane.ERROR_MESSAGE);;
}

步骤三:整合代码

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class ShowTextFrame extends JFrame implements ActionListener{
JTextArea jta;//该文本域用于显示文本信息
JTextField jtf;//该文本框,用于填写文件路径
JLabel jl;//该标签用于保存读取到的行数
JButton jbt;//按钮
public ShowTextFrame() {
jtf = new JTextField(18);
jbt = new JButton("读取并显示");
jbt.addActionListener(this);
JPanel  jp1 = new JPanel();
jp1.add(jtf);
jp1.add(jbt);
add(jp1,BorderLayout.NORTH);
jta = new JTextArea();
JScrollPane jsp = new JScrollPane(jta);//文本域添加到滚动面板
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//垂直滚动条一直显示
add(jsp);

jl = new JLabel("文件共有0行");
JPanel jp2 = new JPanel();
jp2.add(jl);
add(jp2,BorderLayout.SOUTH);
setTitle("显示文本");//窗口标题
setSize(380, 320);
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if(jbt==e.getSource()){
String fp = jtf.getText().trim();
Info info = getInfo(fp);
jta.setText(info.txt);//把文本信息显示到文本域
jl.setText("文件共有"+info.lines+"行");//把行数显示显示到JLabel
}
}

public Info getInfo(String fp){//通过文件路径,获取文件信息(字符串信息和行数信息)
StringBuffer txtbuf=new StringBuffer();
int lines=0;
try {
BufferedReader br = new BufferedReader(new FileReader(fp));
String hasRead=null;
while((hasRead=br.readLine())!=null){
txtbuf.append(hasRead+"\n");
lines++;
}
br.close();//IO流用完记得关闭
} catch (Exception e) {
//当IO出现异常时,要进行提示
JOptionPane.showMessageDialog(this, "文件读取错误,确认文件存在,\n或者没有被其他文件打开.","IO错误",JOptionPane.ERROR_MESSAGE);;
}
return new Info(txtbuf.toString(), lines);
}

public static void main(String[] args) {
new ShowTextFrame();//创建窗口实例
}


}
class Info{//辅助类, 用于传递信息
String txt;//文字信息
int lines;// 行数信息
public Info(String txt, int lines) {
this.txt = txt;
this.lines = lines;
}
}

运行效果图

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-19
import java.io.File;
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
        System.out.println("行数: " + getLineCountOfFile("c:\\1.txt"));
    }
 
    public static int getLineCountOfFile(String filePath) {
        int lineCount = 0;
        Scanner scanner = null;
        try {
            scanner = new Scanner(new File(filePath));
 
            while (scanner.hasNextLine()) {
                System.out.println("文件内容: " + scanner.nextLine());
                ++lineCount;
            }
        } catch (Exception e) {
        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
        return lineCount;
    }
}

现在c盘下新建一个文本文件 名字是1.txt  , 里面输入一些内容 ,然后执行上面的代码, 可以读取内容,统计行数。也可以读出空白行

本回答被网友采纳

Java设计并实现一个应用程序,能够读取一个文本文件中的内容并显示,同时...
步骤一: 需要搭建一个整体的外观, 调整布局和组件的位置.主要需要使用的组件 JTextField 文本框组件: 用于当做地址栏, 填写文件的路径 JButton 按钮, 用于响应点击事件,根据地址栏的地址读取文件, 并且显示到文本域里 JTextArea 文本域, 用于显示文件里的字符串信息 JLabel 标签, 用于显示行数信息 ...

java,编写一个程序,可以读取文件数据
package dome.myword.test;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;public class Myword {public static void main(Strin...

java如何扫描一个文本然后输出这个文本里的一些内容
byte[]buf=new byte[1024];设置基于缓存的读写方法 int i=-1;while((i=fis.read())!=-1){ system.out.println((char)i)}将文件内容输入到控制台 这里的文件特指文本文件如果是别的话可能导致乱码

编写java,该程序实现打开一个文本文件,每次读取一行内容,将每行作为一...
System.out.println(s + "\\r\\n");} \/\/\/主要的代码应该差不多,你自己再修改一下就OK了...

JAVA 读取你磁盘上任意一个文本文件,并输出内容
public static void main(String[] args) { try { String encoding="GBK";File file=new File("E:\\\\123.txt");if(file.isFile() && file.exists()){ \/\/判断文件是否存在 InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);\/\/考虑到编码格式 BufferedReader...

怎样用Java实现从文本文档中读取数据并存入数据库
1. 使用Java I\/O流读取文本文件内容。例如,可以通过`BufferedReader`和`FileInputStream`来读取文本文件。```java import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;\/\/ ...public String readFileContent(String filePath) {...

如何用java实现读取txt文件并对其内容进行处理?java菜菜鸟,求好心人来...
java菜菜鸟,求好心人来个完整的程序。 要读取A.txt(路径D:\/A.txt),内容为123456要求输出B.txt(路径D:\/B.txt),内容为142536... 要读取A.txt (路径D:\/A.txt),内容为1 2 34 5 6要求输出B.txt (路径D:\/B.txt),内容为1 42 53 6 展开  我来答 ...

java编程 求一个能够从TXT文本中提取中文关键字并输出的程序
以下这个程序就是 获取到.txt中的中文,然后在控制台中输出 希望这个能帮到你啊,望采纳啊 package cn.ima_21;import java.io.FileWriter;import java.io.FileReader;import java.io.IOException;public class FileReaderDemo { public static void main(String[] args) throws IOException { \/\/ 创建...

java中如何读取txt文件中的内容并显示在窗体中,我想使用标签显示,窗体...
{ \/\/单击打开按钮时 fd = new FileDialog(f,"Open",FileDialog.LOAD); fd.setVisible(true); \/\/创建并显示打开文件对话框 \/\/if ((fd.getDirectory()!=null) && (fd.getFile()!=null)

学会如何用Java操作Excel文件,有一个文本文件,可以将里面内容读
import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class NewT { public static int v=0;public void painting(String test1,String test2) throws Exception { Workbook rwb = Workbook.getWorkbook(new File(test1));Sheet sheet = rwb.getSheet("Sheet1...

相似回答