一、今日学习内容:
今天练习实验八的内容。
二、遇到的问题:
无
三、明日计划:
明天继续练习实验八的习题。
今日练习的具体内容如下:
1.文件输出
将1000以内所有的素数输出到C盘根目录文件Prime.txt中,每一行只输出一个素数。将程序和输出文件一起打包。
import java.io.FileOutputStream; import java.io.DataOutputStream; import java.io.IOException; public class Prime { public static void main(String[] args) throws IOException { int []m = new int[168]; int i,count = 0; for (i = 2;i<1001;i++) { if (isPrime(i)) { m[count]=i; count++; } } FileOutputStream fos=new FileOutputStream("D:\\Prime.txt"); DataOutputStream dos=new DataOutputStream(fos); for(i=0;i<m.length;i++) { System.out.print(m[i]+"\t"); if(i!=0&&i%6==0) { System.out.println(); } dos.write(m[i]); } fos.close(); } public static boolean isPrime(int i){ for(int k = 2;k<=i/2;k++) { if (i%k==0) { return false;//return直接退出一个函数 } } return true; } }
测试截图:
2.文件输入
输入OFF文件,其中OFF文件保存n个点的坐标,第一行为点的个数,从第二行开始,每一行为一个点的三个坐标,例如,cube.OFF文件如下:
8
0 0 0
1 0 0
0 1 0
1 1 0
0 0 1
1 0 1
0 1 1
1 1 1
写一个程序能读入OFF文件,并将输入的点的坐标输出到屏幕上,每行只输出一个点的坐标,要求OFF文件的名称由程序中输入。
import java.io.FileNotFoundException; import java.io.IOException; import java.io.FileOutputStream; import java.util.*; public class cube { public static void main(String []args) throws IOException{ Scanner sc=new Scanner(System.in); System.out.println("请输入坐标值的个数:"); int m=sc.nextInt(); int []n=new int[m]; System.out.println("请输入这些坐标:"); for(int i=0;i<n.length;i++) { n[i]=sc.nextByte(); } System.out.println(); try { FileOutputStream fos=new FileOutputStream("D:\\cube.txt"); for(int i=0;i<n.length;i++) fos.write(n[i]); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { FileInputStream fis=new FileInputStream("D:\\cube.txt"); for(int i=0;i<n.length;i++) { System.out.print(fis.read()+" "); if(i>=2&&(i+1)%3==0) System.out.println(); } fis.close(); } } }
测试截图: