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 输入输出+图形用户界面的主要内容,如果未能解决你的问题,请参考以下文章

十. 图形界面(GUI)设计1.图形界面设计基础

大家帮帮忙 ,Qt creator如何输入中文?图形界面要求有中文字体。

怎样用java编写图形界面的Application程序

java 要输出格子图形该怎么编程 +---+---+ +---+---+

java输入的内容与输出的结果不一样?

十. 图形界面(GUI)设计7.文本框和文本区的输入输出