最近我看到了输入输出流,写了一个JAVA小程序,是关于读取文件的操作,只要给出文件的路径就可以了,
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class fileinputstream implements ActionListener
{
        JFrame frame=new JFrame("读取文件");
        JButton button=new JButton("读取");
        JTextArea area=new JTextArea(70,80);
        JTextField text=new JTextField("fileinputstream.java");
         JPanel panel=new JPanel();
public fileinputstream()
{
        Container cp=frame.getContentPane();
        panel.add(button);
        panel.add(text);
        cp.add(panel,BorderLayout.NORTH);
        cp.add(area,BorderLayout.CENTER);
        button.addActionListener(this);
        frame.setBounds(300,300,500,600);
        frame.setVisible(true);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{fileinputstream diao=new fileinputstream();}
public void actionPerformed(ActionEvent e)
{   try{
      File file=new File(text.getText());
      FileInputStream input=new FileInputStream(file);
      byte by[]=new byte[1000];
      int b=input.read(by);
      String s=new String(by,0,b,"Default");
       area.setText(s);}catch(IOException e2){area.setText("找不到文件");}
}
}
但是还不能读取汉字,只能读取英文,这是不足的地方,请朋友们支持一下,
那怎么修改程序才能使它读取汉字呢,要用到什么类.和方法,厚道一些,别看了码源不指点一些

解决方案 »

  1.   

    前面的一大堆没什么看头,就看这一段吧:try{
      File file=new File(text.getText()); 
      FileInputStream input=new FileInputStream(file); 
      byte by[]=new byte[1000]; 
      int b=input.read(by); 
      String s=new String(by,0,b,"Default"); 
      area.setText(s);
    }catch(IOException e2){
      area.setText("找不到文件");
    } 问题1,你的文件超过1000字节,后面就不要了?
    问题2,不清楚new String(by,0,b,"Default")中的“default”是否可以这样用。
      

  2.   

          
    List lines=new ArrayList();
    try {
       FileReader fr = new FileReader(file);
       BufferedReader br = new BufferedReader(fr);
           while (br.readLine() != null) {
             String aLine=br.readLine();
             lines.add(aLine);
          }这个应该可以实现汉字读取吧