Java学习:IO流JFileChooser类、RandomAccessFile类的简单应用(读取txt文件并打印在控制台)

Java学习:IO流JFileChooser类、RandomAccessFile类的简单应用(读取txt文件并打印在控制台)

部分结果演示:

在这里插入图片描述

代码实例:

import javax.swing.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class ReaderTest {
    public static void main(String[] args) {
        System.out.print("欢迎使用,请问是要导入新小说还是查看书库的小说? (输入1:导入新小说 输入2:直接进入书库 输入3:退出本系统)\n请输入:");
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        try {
            if (i == 1) {
                JFileChooser fileChooser = new JFileChooser();// 创建一个JFileChooser实例
                String line = null;// 行
                if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                    File file = fileChooser.getSelectedFile();// 获取对话框点击的文件
                    RandomAccessFile raf = new RandomAccessFile(file,"r");
                    while ((line = raf.readLine()) != null) {// 按行读取文档
                        line = new String(line.getBytes("8859_1"), StandardCharsets.UTF_8);// 编码转化
                        System.out.println(line);
                    }
                }
            }
            if (i == 3) {
                System.exit(0);
            }
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            System.out.println("感谢使用");
        }
    }
}

**关于编码转化的疑问**

有时候,为了让中文字符适应某些特殊要求(如http header头要求其内容必须为iso8859-1编码),可能会通过将中文字符按照字节方式来编码的情况,如 

  String s_iso88591 = new String("深".getBytes("UTF-8"),"ISO8859-1"), 

  这样得到的s_iso8859-1字符串实际是三个在 ISO8859-1中的字符,在将这些字符传递到目的地后,目的地程序再通过相反的方式String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")来得到正确的中文汉字“深”。这样就既保证了遵守协议规定、也支持中文。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,可以使用Java Swing中的JFileChooser选择要读取的表格文件,再使用Apache POI库来读取表格文件中的内容,并将读取到的内容打印控制台上。以下是示例代码: ``` import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelFileChooserExample { public static void main(String[] args) { JFrame frame = new JFrame("表格文件选择器示例"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); JButton button = new JButton("选择表格文件"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JFileChooser fileChooser = new JFileChooser(); int result = fileChooser.showOpenDialog(panel); if (result == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); try { Sheet sheet = WorkbookFactory.create(selectedFile).getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { System.out.print(cell.toString() + "\t"); } System.out.println(); } JOptionPane.showMessageDialog(panel, "表格文件读取成功并已打印!"); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(panel, "表格文件读取失败:" + ex.getMessage()); } } } }); panel.add(button); frame.add(panel); frame.pack(); frame.setVisible(true); } } ``` 运行代码后,点击“选择表格文件”按钮,弹出文件选择器,选择要打印的表格文件,程序会自动读取表格文件中的内容,并将内容打印控制台上,最后弹出提示框提示表格文件读取成功并已打印。需要注意的是,代码中使用的Apache POI库需要提前导入到项目中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满目代码皆为你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值