IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA 输入输出+图形用户界面 -> 正文阅读

[Java知识库]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知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:31:54  更:2022-06-16 21:34:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 5:35:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码