JAVA经典例题七(8 examples)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-19 15:21   28   0
  1. 冒泡排序(起泡排序):
public class QiPao {
 public static void main(String[] args) {
  int[] date= {3,2,4,12,42,11,25,32};
  bubbleSort(date);
  for(int a:date) {
   System.out.print(" "+a);
  }
 }
 public static int[] bubbleSort(int[] date) {
  int temp;
  for(int i=0;i<date.length-1;i++) {
   for(int j=i+1;j<date.length;j++) {
    if(date[i]>date[j]) {
     temp=date[i];
     date[i]=date[j];
     date[j]=temp;
    }
   }
  }
  return date;
 }
}
 
  1. 选择排序:
public class XuanZe  {
     public static void main(String[] args) {
         int[] arr={1,3,2,45,65,33,12};
         System.out.println("交换之前:");
         for(int num:arr){
             System.out.print(num+" ");
         }        
         //选择排序的优化
         for(int i = 0; i<arr.length - 1; i++) {// 做第i趟排序
             int k = i;
             for(int j = k + 1; j < arr.length; j++){// 选最小的记录
                 if(arr[j] < arr[k]){ 
                     k = j; //记下目前找到的最小值所在的位置
                 }
             }
             //在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
             if(i!=k){  //交换a[i]和a[k]
                 int temp = arr[i];
                 arr[i] = arr[k];
                 arr[k] = temp;
             }    
         }
         System.out.println();
         System.out.println("交换后:");
         for(int num:arr){
             System.out.print(num+" ");
         }
     }
}

  1. 编写一个程序,接收用户从键盘上输入的文件名或目录名,然后判断该文件或目录是否存在。如存在,对于文件要输出该文件的相关信息;对于目录要输出该目录下所有文件及目录。若不存在,则创建相应的文件或目录,并输出相关信息
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class FileOutput {

 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  Scanner get=new Scanner(System.in);
  System.out.println("请输入一个文件名或目录名:");
  File filedirectoryname=new File(get.nextLine());
  listAllDir(filedirectoryname);
 }
 public static void listAllDir(File filedirectoryname) throws IOException {
  if(filedirectoryname.exists()) {
   if(filedirectoryname.isFile()) {//若是文件
    System.out.println("它是一个文件名!");
    System.out.println("文件名:"+filedirectoryname.getName());
    System.out.println("文件绝对路径:"+filedirectoryname.getAbsolutePath());
    System.out.println("文件相对路径:"+filedirectoryname.getPath());
    System.out.println("文件长度:"+filedirectoryname.length());
   }
   else if(filedirectoryname.isDirectory()) {//若是目录
    System.out.println("它是一个目录名!");
    File f[]=filedirectoryname.listFiles();
    if(f!=null) {
     for(File fl:f) {
      System.out.println(fl);
     }
    }
   }
  }
  else {
   System.out.println("不存在!");
   System.out.println("创建文件请输入1,创建目录请输入2:");
   Scanner get=new Scanner(System.in);
   int i=get.nextInt();
   
   while(i==2) {
    if(filedirectoryname.mkdirs()) {
     System.out.println("目录创建成功!");
    }
    break;
   }
   while(i==1) {
    if(filedirectoryname.createNewFile()) {
     System.out.println("文件创建成功!");
    }
    break;
   }
  }
 }
}

运行结果:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
4. 利用文件输入输出流和缓冲流编写一个实现文件拷贝的程序,源文件名和目标文件名通过Scanner类从控制台获取

import java.util.Scanner;
import java.io.*;

public class CopyFile {

 public static void main(String[] args){
  // TODO Auto-generated method stub
  Scanner get=new Scanner(System.in);
  System.out.println("请输入源文件以及目标文件:");
  String sourcefile=get.nextLine();//源文件
  String destfile=get.nextLine();//目标文件
  try {
   //缓冲输入流的创建
   FileInputStream fis=new FileInputStream(sourcefile);
   BufferedInputStream bis=new BufferedInputStream(fis);
   FileOutputStream fos=new FileOutputStream(destfile);
   BufferedOutputStream bos=new BufferedOutputStream(fos);
   int b;
   while((b=bis.read())!=-1) {
    bos.write(b);//写入缓冲输出流
   }
   bos.flush();
   bos.close();
   bis.close();
   System.out.println("文件复制完成!");
  }catch(Exception e) {
   System.out.println("文件复制未完成!");
   System.out.println("异常信息"+e.getMessage());
  }
  
 }

}
  1. 利用 System.in、InputStreamReader和BufferedWriter实现读取键盘输入的数据,同时使用PrintWriter和System.out将读取到的数据保存在文件和输出到显示器
import java.io.*;
import java.util.Scanner;

public class Read {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try {
   System.out.println("请输入字符或数字,退出请输入'q'!");
   int ch=System.in.read();//读取字节数据
   while(ch!='q'){
    if(Character.isLetterOrDigit(ch))
     System.out.println("输出字符为:"+(char)ch);
    ch=System.in.read();
   }
  }catch(IOException e) {
   System.out.println(e.getMessage());
  }
  System.out.println("程序结束!");
  
  
  System.out.println("请输入一个数字:");
  Scanner sc=new Scanner(System.in);
  int m=sc.nextInt();
  try(FileOutputStream fos=new FileOutputStream("test1.txt");
    PrintStream ps=new PrintStream(fos)) {
    ps.println(m);
    System.out.println(m);
   }catch(Exception e) {
    
   }
 }

}
  1. 获取本地的字体文件,并打印输出所有的字体类型以及总数
import java.awt.GraphicsEnvironment;

public class Ziti {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
  String evnfonts[] = gEnv.getAvailableFontFamilyNames();
  System.out.println("共有 "+evnfonts.length+"字体文件!");
  for(int i=0;i<evnfonts.length;i++){
       System.out.println(evnfonts[i]);
  }
 }

}
  1. 自定义异常类之查找书籍应用(不同方式查找书籍)
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test {

 public static void main(String[] args) throws NoBookException {
  // TODO Auto-generated method stub
  String[] book= {"高数","英语","语文","Java","计算机网络"};
  Test t=new Test();
  t.menu1(book);
 }
 
//menu1 选择查找方法
 public void menu1(String[] book) throws NoBookException{
  try {
   Scanner input=new Scanner(System.in);
   System.out.println("请选择功能:1.通过书名查找;2.通过序号查找");
   int i=input.nextInt();
   switch(i) {
   case 1:menu2(book);
    break;
   case 2:menu3(book);
    break;
   default:break;
   }
   input.close();
  }catch(InputMismatchException e) {
   System.out.println("请输入整数:");
   menu1(book);
  }
 }
 
//根据名称查找 
 public void menu2(String[] book)throws NoBookException{
  try {
   System.out.println("请输入名称:");
   Scanner input=new Scanner(System.in);
   String i=input.nextLine();
   boolean flag=false;
   for(int n=0;n<book.length;n++) {
    if(i.equals(book[n])) {
     flag=true;
     System.out.println("book:"+book[n]);
    }
   }
   if(flag==false) {
    throw new NoBookException("图书不存在");
   }
   input.close();
  }catch(NoBookException e) {
   System.out.println("请重新输入书名:");
   menu2(book);
  }
 }
//按序号查找 
 public void menu3(String[] book) throws NoBookException{
  try {
   System.out.println("请输入序号:");
   Scanner input=new Scanner(System.in); 
    int i=input.nextInt();
    if(i>0&&i<book.length+1) {
     System.out.println("book:"+book[i-1]);
    }
    else {
     throw new NoBookException("图书不存在!");
    }
    input.close();
  }catch(NoBookException e) {
   System.out.println("图书不存在,请重新输入:");
   menu3(book);
  }
 }

}

//自定义异常类
class NoBookException extends Exception{
 public NoBookException() {
  
 }
 public NoBookException(String a) {
  super(a);
 }
}
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP