您的位置:首页 > 编程语言 > Java开发

java学习心得

2006-05-14 21:42 477 查看
今天是周末,好久都没有写作业了,今天趁周末有空一口气写出来准备星期一就交。(说实在的,学计算机的做作业正是无聊,尤其是书后的练习。。。)

不过,既然作了,还是有点收获的。毕竟java平台是最近一个月才转过来的,俺以前一直是搞VB和C#的。如果不是学习开了java课,可能暂时还不会转移到java平台。java 的开发工具实在没有 Visual Studio .NET2003 好用,就连 VS6.0都赶不上。<呵呵>当然,Eclipse、NetBeans IDE也是不错的开发工具,俺也打算今后采用 Linux+Apache+MySQL作系统了。C#将不会是首选了。

下面把今天写的程序中,有用的几个列出了。

1-获取指定目录的信息(文件/文件夹)

import java.io.*;

import java.util.Date;

public class Alone13_1 {

public static void main(String[] args) throws IOException {

File f=new File(new BufferedReader(

new InputStreamReader(System.in)).readLine());

File []fs=f.listFiles();

for(int i=0;i<f.length();i++)

{

if(fs[i].isDirectory())

System.out.println("目录:"+fs[i]);

else

{

System.out.print("文件:"+fs[i]);

System.out.print(" 大小:"+fs[i].length()/1024+"Kbyte ");

if(fs[i].isHidden())System.out.print("隐藏属性:是 ");

else System.out.print("隐藏属性:是 ");

System.out.print("日期:"+

new Date(fs[i].lastModified()).toLocaleString()+"/n");

}

}

}

}

2-java中对象序列化并写入文件的例子(注意:未实现把对象从文件中读取,只实现了写入)

package lx;

import java.io.*;

public class P201_1 {

public static void main(String[] args) throws IOException {

student[] s=new student[100];

int n=0;

String fp="D://obj.data";

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(fp));

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

String data=null;

System.out.println("/n请输入名字及国语,英语,数学,科学的成绩。(eof:输入完毕)");

while(true)

{

data=br.readLine();

if(data.equals("eof"))break;

s
=new student(data);

n++;

}

System.out.println("写入文件的对象为:");

for(int i=0;i<n;i++){

oos.writeObject(s[i]);

s[i].get(); }

oos.close();

System.out.println("已将"+n+"个对象写入文件!");

}

}

class student implements Serializable{

private static final long serialVersionUID = 5297152510487875285L;

String name;

int[] record=new int[4];

int total;

float avg;

String grade;

student(String data)

{

total=0;

avg=0;

set(data);

}

public void set(String data)

{

int i=data.indexOf(" ");

name=data.substring(0,i);

data=data.substring(i+1,data.length());

for(int k=0;k<4;k++)

{

int p=data.indexOf(" ");

if(p!=-1){

record[k]=Integer.parseInt(data.substring(0,p));

data=data.substring(p+1,data.length());

}

else

record[k]=Integer.parseInt(data);

total+=record[k];

}

avg=total/4;

}

public void get()

{

System.out.print("姓名:"+name+" 国语:"+record[0]+" 英语:"+

record[1]+" 数学:"+record[2]+" 科学:"+record[3]+"/n");

}

}

今天一共写了12道题目,不过觉得只有上面2个题目最有意思。其他的几乎是在重复n年前学习C语言时的作业题。也许我国的教育就是喜欢用新式武器去处理陈年芝麻吧。。。

小结:

从控制台输入数据的办法。(注意:java只能从控制台输入字符串,如果需要其他数据,需要自行转换)

例如:输入字符串(需导入 import java.io.*;)

String s=null;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

s = br.readLine();

从控制台输入整数:

int n1=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());

System.out.println(n1);

对象的序列化需要加入关键字implements Serializable,并且在类体中加入

private static final long serialVersionUID = 5297152510487875285L;

(至于原因嘛,今天偷懒了,没有仔细研究,等明天好好看看书。呵呵)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: