- 冒泡排序(起泡排序):
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;
}
}
- 选择排序:
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+" ");
}
}
}
- 编写一个程序,接收用户从键盘上输入的文件名或目录名,然后判断该文件或目录是否存在。如存在,对于文件要输出该文件的相关信息;对于目录要输出该目录下所有文件及目录。若不存在,则创建相应的文件或目录,并输出相关信息
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());
}
}
}
- 利用 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) {
}
}
}
- 获取本地的字体文件,并打印输出所有的字体类型以及总数
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]);
}
}
}
- 自定义异常类之查找书籍应用(不同方式查找书籍)
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);
}
}
|