学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含
1、打印文件的属性
- 描述:从键盘输入路径和文件名,打印文件的可读性、长度、绝对路径。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import java.io.*; import java.util.Scanner; public class Example10_1_1 { public static void main(String args[]) { Scanner reader = new Scanner(System.in);
String path = reader.next(); String name = reader.next(); File file = new File(path+"/"+name); System.out.println( file.getName() +"是可读的吗:"+ file.canRead()); System.out.println( file.getName()+"的长度:"+file.length()); System.out.println( file.getName()+"的绝对路径:"+ file.getAbsolutePath()); } }
|
2、创建文件
- 描述:从键盘输入要创建文件的名字,成功后输出创建成功。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import java.io.*; import java.util.Scanner; public class Example10_1_2 { public static void main(String args[]) { Scanner reader = new Scanner(System.in); File file = new File(reader.nextLine()); System.out.println("在当前目录下创建新文件"+file.getName()); if(!file.exists()) { try { file.createNewFile(); System.out.print("创建成功"); } catch(IOException exp){} }else{ System.out.print("文件已经存在"); } } }
|
3、向文件中写入内容
- 描述::从键盘输入两个字符串,每输入一个字符串按回车结束,将两个字符串依次写入文件中,并输出两次写入后的文件大小。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| import java.io.*; import java.util.Scanner; public class Example10_5 { public static void main(String args[]) { Scanner reader = new Scanner(System.in); byte [] a = reader.nextLine().getBytes(); byte [] b = reader.nextLine().getBytes(); File file = new File("a.txt"); try{ OutputStream out=new FileOutputStream(file); System.out.println(file.getName()+"的大小:"+file.length()+"字节"); out.write(a); out.close(); out.close(); out = new FileOutputStream(file, true); System.out.println(file.getName()+"的大小:"+file.length()+"字节"); out.write(b); System.out.println(file.getName()+"的大小:"+file.length()+"字节"); out.close(); } catch(IOException e) { System.out.println("Error "+e); } } }
|
4、倒叙输出文件内容
- 描述:从键盘输入一个文件名称,按回车结束,创建该文件,定义一个数组data,内容是1-10,将数组内容写入文件,然后倒叙输出文件内容。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import java.io.*; import java.util.Scanner; public class Example10_8 { public static void main(String args[]) { Scanner reader = new Scanner(System.in); RandomAccessFile inAndOut=null; int data[]={1,2,3,4,5,6,7,8,9,10}; try{ inAndOut=new RandomAccessFile(reader.nextLine(),"rw"); for(int i:data) { inAndOut.write(i); } for(int i=data.length-1;i>=0;i--) { System.out.printf("%d ", data[i]); } inAndOut.close(); } catch(IOException e){ e.printStackTrace(); } } }
|
5、打印内存中的数据
- 描述:从键盘输入一个字符串,按回车结束,使用字节数组流和字符数组流将字符串写入内存,再从内存读取曾写入的数据,并打印。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import java.io.*; import java.util.Scanner; public class Example10_10 { public static void main(String args[]) { Scanner reader = new Scanner(System.in); String str = reader.nextLine(); try { ByteArrayOutputStream outByte = new ByteArrayOutputStream(); byte [] byteContent = str.getBytes(); outByte.write(byteContent); ByteArrayInputStream inByte= new ByteArrayInputStream(outByte.toByteArray()); byte [] backByte = new byte[byteContent.length]; inByte.read(backByte); System.out.println(new String(backByte)); CharArrayWriter outChar = new CharArrayWriter(); char [] charContent=str.toCharArray(); outChar.write(charContent); CharArrayReader inChar = new CharArrayReader(outChar.toCharArray()); char backChar [] = new char[charContent.length]; inChar.read(backChar); System.out.print(new String(backChar)); } catch(IOException exp){} } }
|
6、从文件读取不同类型的数据
- 描述:从键盘输入一个文件名,按回车结束,创建该文件,向文件中写入6种类型的数据,再根据类型从文件中读取,并打印。
- 代码(听我同学说用C写,Java的我也没写出来,有想法的欢迎评论区回复)
7、将字符串加密
- 描述:从键盘输入一个字符串,按回车结束,以EncryptAndDecrypt类给出的加密形式加密该字符串,将加密字符串以数据流写入secret文件,并打印加密字符串,再以数据流读取secret文件,进行解密,并打印解密字符串。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| import java.io.*; import java.nio.charset.StandardCharsets; import java.util.Scanner;
public class Example10_12 { public static void main(String args[]) { Scanner reader = new Scanner(System.in); String command = reader.nextLine(); EncryptAndDecrypt person = new EncryptAndDecrypt(); String password = "Tiger"; String secret = person.encrypt(command,password); File file=new File("secret.txt"); try{ FileOutputStream fos = new FileOutputStream(file); DataOutputStream outData = new DataOutputStream(fos); outData.writeUTF(secret); System.out.println("加密命令:"+secret); fos.flush(); outData.flush(); fos.close(); outData.close(); } catch(IOException e){} try{ FileInputStream fis = new FileInputStream(file); DataInputStream inData = new DataInputStream(fis); secret = inData.readUTF(); String mingwen = person.decrypt(secret,password); System.out.println("解密命令:"+mingwen); fis.close(); inData.close(); } catch(IOException e){ e.printStackTrace(); } } } class EncryptAndDecrypt{ String encrypt(String sourceString,String password){ char [] p = password.toCharArray(); int n = p.length; char [] c = sourceString.toCharArray(); int m = c.length; for(int k = 0;k<m;k++){ int mima = c[k]+p[k%n]; c[k] = (char)mima; } return new String(c); } String decrypt(String sourceString,String password){ char [] p = password.toCharArray(); int n = p.length; char [] c = sourceString.toCharArray(); int m = c.length; for(int k = 0;k<m;k++){ int mima = c[k]-p[k%n]; c[k] = (char)mima; } return new String(c); } }
|
8、实现对象的写入读取到文件中
- 描述:从键盘输入一个文件名,按回车结束,并创建文件,用TV类定义一个对象changhong,将对象chnaghong以对象流写入文件中,再通过对象流读取文件中的对象赋值给用TV类定义的xinfei对象,给xinfei对象属性赋值,最后输出changhong对象和xinfei对象的属性值。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| import java.io.*; import java.util.Scanner; public class Example10_13 { public static void main(String args[]) { Scanner reader = new Scanner(System.in); TV changhong = new TV(); changhong.setName("长虹电视"); changhong.setPrice(5678); File file=new File(reader.nextLine()); try{ ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file)); oos.writeObject(changhong); ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file)); TV xinfei = (TV)ois.readObject(); xinfei.setName("新飞电视"); xinfei.setPrice(6666); System.out.println("changhong的名字:"+changhong.getName()); System.out.println("changhong的价格:"+changhong.getPrice()); System.out.println("xinfei的名字:"+xinfei.getName()); System.out.println("xinfei的价格:"+xinfei.getPrice()); } catch(ClassNotFoundException event) { System.out.println("不能读出对象"); } catch(IOException event) { System.out.println(event); } } }
class TV implements Serializable { String name; int price; public void setName(String s) { name=s; } public void setPrice(int n) { price=n; } public String getName() { return name; } public int getPrice() { return price; } }
|