📄 file.java
字号:
package 有关文件的;
import java.io.*;
import java.util.Arrays;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class file extends JFrame
//implements ActionListener
{
JTextArea tm= new JTextArea();//题目
JLabel jLabel1 = new JLabel();//输入20个整数的标签
JLabel jLabel2 = new JLabel();//最大数标签
JLabel jLabel3 = new JLabel();//最小数标签
JLabel jLabel4 = new JLabel();//平均数标签
JTextField sr = new JTextField();
JTextField max = new JTextField();
JTextField min = new JTextField();
JTextField ave = new JTextField();
JTextArea sc = new JTextArea();
JButton dr = new JButton();//从文件读入
JButton xians = new JButton();//显示按钮
public file() {
try {
Init();
}
catch (Exception e) {
e.printStackTrace();
}
}
private void Init() throws Exception {
jLabel1.setFont(new java.awt.Font("Dialog", 0, 15));
jLabel1.setText("输入20个整数:");
jLabel1.setBounds(new Rectangle(40, 70, 150, 38));
this.getContentPane().setLayout(null);
jLabel2.setFont(new java.awt.Font("Dialog", 0, 15));
jLabel2.setText("最大值为:");
jLabel2.setBounds(new Rectangle(380, 200, 87, 35));
jLabel3.setFont(new java.awt.Font("Dialog", 0, 15));
jLabel3.setText("最小值为:");
jLabel3.setBounds(new Rectangle(380, 235, 87, 35));
jLabel4.setFont(new java.awt.Font("Dialog", 0, 15));
jLabel4.setText("平均值为:");
jLabel4.setBounds(new Rectangle(380, 270,87, 35));
sr.setBackground(SystemColor.menu);
sr.setEditable(true);
sr.setText("");
sr.setBounds(new Rectangle(178, 72, 270, 50));
tm.setFont(new java.awt.Font("Dialog", 0, 15));
// tm.setBackground();
tm.setBackground(new Color(254, 175, 197));
tm.setText(" 题目--从键盘输入20个正整数,从文件AIN.TXT中读入20个正整数,求该40个数的最大,最小及平均数,并把结果写入AOUT.TXT中,然后在文本框中显示结果");
tm.setBounds(new Rectangle(15, 15, 550, 50));
tm.setLineWrap(true);
sc.setText("");
sc.setBounds(new Rectangle(195, 165, 170, 170));
sc.setBackground(SystemColor.menu);
sc.setLineWrap(true);//实验文本域的自动换行
max.setText("");
max.setBounds(new Rectangle(470, 200, 114, 33));
min.setText("");
min.setBounds(new Rectangle(470, 235, 114, 33));
ave.setText("");
ave.setBounds(new Rectangle(470, 270, 114, 33));
dr.setBounds(new Rectangle(30,200, 160, 35));
dr.setFont(new java.awt.Font("Dialog", 0, 15));
dr.setText("从文件中读入数据");
dr.addActionListener(new file_dr_actionAdapter(this));
xians.setText("显示结果");
xians.addActionListener(new file_xians_actionAdapter(this));
xians.setBounds(new Rectangle(450, 400, 100, 34));
xians.setFont(new java.awt.Font("Dialog", 0, 15));
this.setResizable(false);
this.setTitle("Java的数字问题");
this.getContentPane().add(tm, null);
this.getContentPane().add(jLabel1, null);
this.getContentPane().add(jLabel2, null);
this.getContentPane().add(jLabel3, null);
this.getContentPane().add(jLabel4, null);
this.getContentPane().add(sr, null);
this.getContentPane().add(max, null);
this.getContentPane().add(min, null);
this.getContentPane().add(ave, null);
this.getContentPane().add(sc, null);
this.getContentPane().add(dr, null);
this.getContentPane().add(xians, null);
this.setBounds(200, 200, 600, 500);
this.setVisible(true);
}
public static void main(String [ ] args){
file file = new file(); }
void dr_actionPerformed(ActionEvent e) {
String str1="";
try {
int x=0;
FileInputStream in=new FileInputStream("e:/ain.txt");
double result = 0;
while(x!=-1){
x=in.read();
if(x==-1)break;
str1+=(char)x; }
String []str2=str1.split(" ");//正则表达试 这里会按" "空格来拆分字符串str1
//double db[]=new double[str2.length]; //建立一个double 数组 长度与str1的相同
//for(int i=0;i<str2.length;i++){
//db[i]= Double.parseDouble(str2[i]); //给新创建的double数组 赋值
//sc.setText(String.valueOf(db[i]));//只显示最后一个,前面的数被覆盖
//sc.setText(String.valueOf(db));//会出现乱码
//result+=db[i]; //算结果
//System.out.println(db[i]);
//} //到这 double[]数组就有全部的值了
sc.setText(String.valueOf(str1));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException IOE) {
IOE.printStackTrace();
}
}
void xians_actionPerformed(ActionEvent e) {
String str="";
String str1="";
try {
str=sr.getText();
int x=0;
double average=0;
FileInputStream in=new FileInputStream("e:/ain.txt");
double result = 0;
while(x!=-1){
x=in.read();
if(x==-1)break;
str1+=(char)x; }
String scat=str.concat(str1);//字符串的连接
sc.setText(String.valueOf(scat));
String []str2=scat.split(" ");//正则表达试 这里会按" "空格来拆分字符串str1
double db[]=new double[str2.length]; //建立一个double 数组 长度与str1的相同
for(int i=0;i<str2.length;i++){
db[i]= Double.parseDouble(str2[i]); //给新创建的double数组 赋值
result+=db[i]; //算结果
average=result/str2.length;
}
Arrays.sort(db);//按照从大到小将db数组排序
//System.out.println("最小值:"+db[0]);//取第0个乃最小值
//System.out.println("最大值:"+db[db.length-1]);//取最后一个乃最大值
//System.out.println("总共和:"+result);
max.setText(String.valueOf(db[db.length-1]));
min.setText(String.valueOf(db[0]));
ave.setText(String.valueOf(average));
//File filePath=new File("temp"); //在当前目录下建目录,也可用绝对目录
//if(!filePath.exists( ))filePath.mkdir( ); //若目录不存在,则建之
//File fl=new File(filePath,"AOUT.TXT"); //在指定目录下建文件类对象
FileOutputStream fout=new FileOutputStream("AOUT.TXT");
DataOutputStream dout=new DataOutputStream(fout);
//ObjectOutputStream dout=new ObjectOutputStream(fout);
//System.out.println("请输入20个正整数,输入结束按# :");
//while((c=(char)System.in.read( ))!='#') //键盘输入字符写到磁盘文件
//for(int i=0;i<str2.length*4;i++){
//db[i]= Double.parseDouble(str2[i]); //给新创建的double数组 赋值
dout.writeBytes(scat); // }
//dout.writeObject(db);
//int len=f1.c.length;
//dout.close( ); //
//RandomAccessFile rf = new RandomAccessFile("AOUT.txt", "rw");
//rf.seek(rf.length());
//for(int i=0;i<str2.length;i++){
//db[i]= Double.parseDouble(str2[i]); //给新创建的double数组 赋值
//by=new byte[str2.length*4];
//by=Convert.ToByte(scat);
//}
dout.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
class file_dr_actionAdapter implements java.awt.event.ActionListener {
file adaptee;
file_dr_actionAdapter(file adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.dr_actionPerformed(e);
}
}
class file_xians_actionAdapter implements java.awt.event.ActionListener {
file adaptee;
file_xians_actionAdapter(file adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.xians_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -