JAVA 输入输出+图形用户界面
Posted 钟钟终
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 输入输出+图形用户界面相关的知识,希望对你有一定的参考价值。
输入输出
一.流的分类
1.按方向分为输入流(外部—>程序)和输出流(程序—>外部);
2.按照读取单位分为字节流和字符流;
3.按是否直接与数据源打交道分为节点流和处理流。
调用流对象的读写方法大都需要处理IOException
,该异常是检验异常,需要捕捉或在调用方法后加声明。
二、分为五个需要掌握的方法
1.字节输入流
2.字节输出流
利用一张图片读取二进制数生成一张一摸一样的图片。
public class Main
public static void main(String[] args) throws Exception
FileInputStream fis=new FileInputStream("e:/2.jpg");
List<Integer> l1=new ArrayList<>();
while(true)
int a=fis.read();
if(a==-1)
break;
l1.add(a);
fis.close():
File f=new File("e:/1");
FileOutputStream fos=new FileOutputStream("e:/1.jpg");
for(int x:l1)
fos.write(x);
fos.close();
3.字符输入流
4.字符输出流
注意点:
1.写数字到文档中时,不要加换行符之类的其他东西,不然也会当成要写入的信息处理。
2.会影响后续对写入数据的处理。
public class Main
public static void main(String[] args) throws Exception
//生成随机数写入文件
FileWriter fw=new FileWriter("e:/1.txt");
List<Integer> l1=new ArrayList<>();
for(int i=0;i<100;i++)
int tmp=(int)(Math.random()*10);
l1.add(tmp);
//System.out.println(tmp);
for(int x:l1)
fw.write(x);
fw.close();
//读出随机数统计次数
FileReader fr=new FileReader("e:/1.txt");
Map<Integer, Integer> mp=new TreeMap<>();
while(true)
int tmp=fr.read();
if(tmp==-1)
break;
//System.out.println(tmp);
if(mp.get(tmp)==null)
mp.put(tmp,1);
else
mp.put(tmp, mp.get(tmp)+1);
fr.close();
for(Entry<Integer, Integer> x:mp.entrySet())
System.out.print(x.getKey()+"\\t"+x.getValue()+"\\r\\n");
//结果写回原文档
fw=new FileWriter("e:/1.txt");
for(Entry<Integer, Integer> x:mp.entrySet())
fw.write(x.getKey()+"/t"+x.getValue()+"\\r\\n");
fw.close();
5.Scanner方式对字符的读取
Scanner sc=new Scanner(new File("e:/1.txt"));
while(sc.hasNextLine())
String tmp=sc.nextLine();
System.out.println(tmp+"-------");
1、目录、文件操作
(1)在d盘下建立一个目录dir1
File f1=new File("d:/dir1");
f1.mkdir();
(2)在目录dir1下建立文本文件1.txt,并在里面输入内容。
File f2=new File("d:/dir1/1.txt");
f2.createNewFile();
(3)输出1.txt文件的大小及最后修改日期。
System.out.println(f2.length());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date(f2.lastModified())));
(4)将1.txt重命名为2.txt。
File f3=new File("d:/dir1/2.txt");
f2.renameTo(f3);
(5)将目录dir1删除。
f3.delete();
f1.delete();
图形用户界面
对于添加文本、标签、按钮、设置监听的简单使用,框架如下:
1.将要用到的窗口、面板、标签、文本、按钮在构造函数前就准备好。
2.根据需要装入构造函数。
4.事件源注册监听器,为了处理方便,通常让容器自身作为监听器。
5.监听器类实现监听接口,在相应方法中编写事件处理代码。
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Main
public static void main(String[] args)
new Fr();
class Fr extends JFrame implements ActionListener
JTextField f1=new JTextField(10);
JTextField f2=new JTextField(10);
JLabel add=new JLabel("+");
JTextField f3=new JTextField(10);
JLabel eq=new JLabel("=");
JButton gen=new JButton("生成随机数");
JButton cal=new JButton("计算");
JPanel p=new JPanel();
JLabel tips=new JLabel();
Fr()
this.setLayout(new FlowLayout());
this.add(f1);
this.add(add);
this.add(f2);
this.add(eq);
this.add(f3);
this.add(p);
p.add(gen);
p.add(cal);
this.add(tips);
gen.addActionListener(this);
cal.addActionListener(this);
this.setSize(400,250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
@Override
public void actionPerformed(ActionEvent e)
// TODO Auto-generated method stub
if(e.getActionCommand()=="生成随机数")
int a=(int)(Math.random()*100);
int b=(int)(Math.random()*100);
f1.setText(a+"");
f2.setText(b+"");
else if(e.getSource()==cal)
try
int a=Integer.parseInt(f1.getText());
int b=Integer.parseInt(f2.getText());
int c=Integer.parseInt(f3.getText());
int ans=a+b;
if(ans==c)
tips.setText("计算正确!");
else
tips.setText("计算错误!");
catch (Exception e1)
// TODO Auto-generated catch block
tips.setText("输入格式错误!");
以上是关于JAVA 输入输出+图形用户界面的主要内容,如果未能解决你的问题,请参考以下文章
大家帮帮忙 ,Qt creator如何输入中文?图形界面要求有中文字体。