第8章 IO_补充案例

第8章 IO_补充案例
第8章 IO_补充案例

第八章补充案例

案例8-1 FileInputStream读取文件数据

一、案例描述

1、考核知识点

编号:00108002

名称: 字节流读写文件--读取文件

2、练习目标

掌握如何使用FileInputStream字节流读取文件中数据

3、需求分析

在操作文件时,最常见的就是从文件中读取数据并将数据写入文件,即文件的读写。针对文件的读操作,JDK专门提供了FileInputStream类。为了让初学者掌握FileInputStream字节流的使用,在案例中将针对读取并打印指定文件中的数据进行演示。

4、设计思路(实现原理)

1)创建一个文本文件fis.txt,在文件中编辑内容“Welcome to learn IO stream!”。

2)在同一目录下创建Example01.java文件,编写Example01类。

3)在main()方法中,通过FileInputStream(String name)构造方法创建文件输入字节流对象,并指

定待读取文件fis.txt的路径。

4)在while循环条件中使用read()方法每次读取一个字节,同时在循环体中打印每次读取的数据,

当read()方法返回值为-1时表示读取到文件结尾,循环结束。

5)使用close()方法,关闭流资源。

二、案例实现

import java.io.FileInputStream;

import java.io.IOException;

public class Example01 {

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

// 创建字节输入流对象

FileInputStream fis = new FileInputStream("fis.txt");

// 读取所有字节

int by = 0;

while ((by = fis.read()) != -1) {

System.out.print((char) by);

}

// 关闭字节输入流

fis.close();

}

}

运行结果如图8-1所示。

图8-1运行结果

从运行结果可以看出,使用FileInputStream类成功地读取出fis.txt文件中的数据。

三、案例总结

1、通过FileInputStream(String name)构造方法创建FileInputStream对象时,传入的待读取文件的路径,可以是相对路径也可以是绝对路径。

2、在读取文件数据时,必须保证文件是存在并且可读的,否则会抛出文件找不到的异常FileNotFoundException。

3、FileInputStream类有三个重载的read()方法,如果方法返回值为-1,均表示已读取到了文件的结尾。

4、为了使流对象所占用的系统资源得到释放,请记住调用FileInputStream类close()方法关闭字节流。

5、思考一下:修改Example01类,如何实现只读取文件的单个字节?代码如下:

import java.io.FileInputStream;

import java.io.IOException;

/*

* 读取单个字节

*/

public class Example01 {

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

// 创建字节输入流对象

FileInputStream fis = new FileInputStream("fis.txt");

// 读取单个字节

int i = fis.read();

System.out.println(i);

// 关闭字节输入流

fis.close();

}

}

案例8-2 FileOutputStream写入数据

一、案例描述

1、考核知识点

编号:00108003

名称: 字节流读写文件--写入文件

2、 练习目标

掌握如何使用FileOutputStream 字节流向文件写入数据

3、 需求分析

与FileInputStream 对应的是FileOutputStream ,它是操作文件的字节输出流,专门用于把数据写入文件。为了让初学者掌握FileOutputStream 字节流的使用,在案例中将通过演示向文本文件写入一段文字来学习。

4、 设计思路(实现原理)

1) 编写Example02类。 2) 在main()方法中,通过FileOutputStream(String name)构造方法创建文件输出字节流对象,并指

定写入的文件路径。

3) 定义一段字符串,并将它转换成byte 数组,然后通过write(byte[] b)方法,将byte 数组写入到

文件输出流中。

4) 使用FileOutputStream 类的close()方法,关闭流资源。

二、案例实现

import java.io.FileOutputStream; import java.io.IOException; public class Example02 {

public static void main(String[] args) throws IOException { // 创建字节输出流对象

FileOutputStream fos = new FileOutputStream("fos.txt"); // 用字符串转换字节数组

byte[] b = "欢迎学习IO 流".getBytes(); // 将数组中数据写入文件 fos.write(b); // 关闭输出流 fos.close();

}

}

程序运行后,会在当前目录下生成一个新的文本文件fos.txt ,文件内容如图8-2所示:

图8-2 fos.txt

从运行结果可以看出,使用FileOutputStream 类成功把数据写入文件。

三、案例总结

1、与FileInputStream读取的文件必须存在不同,FileOutputStream写入数据的文件不必是已存在的,因为该文件会被自动创建。

2、FileOutputStream类有三个重载的write()方法,可以分别向文件中一次写入单个字符、字符数组以及数组的部分数据。

3、思考一下:我们在使用案例中的方式,多次向fos.txt文件中写入不同数据时,发现文件中原有内容被新数据替代了。请问如果希望在原有文件内容之后追加新内容,如何修改Example02类?代码如下:import java.io.FileOutputStream;

import java.io.IOException;

public class Example02 {

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

// 创建字节输出流对象

FileOutputStream fos = new FileOutputStream("fos.txt",true);

// 用字符串转换字节数组

byte[] b = ",真的很好玩".getBytes();

// 将数组内容写入文件

fos.write(b);

// 关闭输出流

fos.close();

}

}

程序运行后,再次打开fos.txt,文件内容如图8-3所示:

图8-3fos.txt

以上代码中使用了FileOutputStream的另一个构造方法FileOutputStream(String fileName, boolean append) 来创建文件输出流对象,当设置append参数值为true时表示追加内容,从上图可以看出新内容成功追加到原有内容以后。

案例8-3 自定义缓冲区拷贝大文件

一、案例描述

1、考核知识点

编号:00108005

名称: 字节流的缓冲区

2、练习目标

掌握如何自定义缓冲区

掌握如何使用自定义缓冲区读、写文件

了解自定义缓冲区读写的优点

3、需求分析

操作文件时一个个字节的读写,效率非常低,为了提高效率可以自定义一个字节数组作为缓冲区。为了让初学者掌握如何使用自定义缓冲区读写文件,案例中将演示使用字节流的自定义缓冲区拷贝“IO流.avi”文件到其它目录来学习。

4、设计思路(实现原理)

1)在当前目录下创建source和target文件夹,并在source文件夹中存放一个“IO流.avi”文件。

2)编写Example03类。

3)在main()方法中,分别创建文件字符输出流和文件字符输入流对象,并指定文件拷贝的源及目

标路径。

4)自定义一个1024长度的字节数组作为缓冲区,然后通过输入流将源文件数据读取到缓冲区中,

输出流再将缓冲区中数据写入到目标文件中,循环往复直到文件拷贝结束,并计算拷贝文件

总耗时。

5)使用close()方法,关闭流资源。

二、案例实现

import java.io.*;

public class Example03 {

public static void main(String[] args) {

FileInputStream fis = null;

FileOutputStream fos = null;

try {

// 创建文件字符输出流和文件字符输入流对象

fis = new FileInputStream("source\\IO流.avi");

fos = new FileOutputStream("target\\IO流.avi");

// 创建字节数组,用于缓存读取的字节

byte[] bys = new byte[1024];

int len = 0;

long starttime = System.currentTimeMillis();// 获取拷贝文件前的系统时间

// 读取到文件结束时,返回-1

while ((len = fis.read(bys)) != -1) {

// 将缓冲区中的数据写入文件

fos.write(bys, 0, len);

}

long overtime = System.currentTimeMillis();// 获取拷贝文件结束的系统时间

System.out.println("拷贝文件消耗的时间为:" + (overtime - starttime) + "毫秒");

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("拷贝文件失败!");

} finally {

try {

// 关闭流资源

fis.close();

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("输入流关闭失败!");

}

try {

// 关闭流资源

fos.close();

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("输出流关闭失败!");

}

}

}

}

程序运行结束后,打开target文件夹,发现source文件夹中的“IO流.avi”文件被成功拷贝到了target 文件夹,如图8-4所示。

图8-4拷贝结果

程序运行结束后,会在命令行窗口输出拷贝文件所消耗的时间,如图8-5所示:

图8-5运行结果

从运行结果可以看出,使用自定义缓冲区拷贝大文件成功,而且耗时较短。

三、案例总结

1、由于计算机性能等各方面原因,会导致每次拷贝文件所消耗的时间未必相同。

2、在指定文件路径时使用了“\\”,这是因为在Windows目录路径基础上使用了转义符“\”。

3、为了保证IO流的close()方法必须执行,通常将关闭流的操作写在finally代码块中。

4、思考一下:使用自定义缓冲区拷贝文件时效率高耗时短,请修改Example03类,在不使用缓冲区的情况下拷贝文件,打印所消耗的时间,并与使用缓冲区所耗时间比较。代码如下:import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

public class Example03 {

public static void main(String[] args) {

FileInputStream fis = null;

FileOutputStream fos = null;

try {

// 创建文件字符输出流和文件字符输入流对象

fis = new FileInputStream("source\\IO流.avi");

fos = new FileOutputStream("target\\IO流.avi");

// 创建字节数组,用于缓存读取的字节

int len = 0;

long starttime = System.currentTimeMillis();// 获取拷贝文件前的系统时间

// 读取到文件结束时,返回-1

while ((len = fis.read()) != -1) {

// 将缓冲区中的数据写入文件

fos.write(len);

}

long overtime = System.currentTimeMillis();// 获取拷贝文件结束的系统时间

System.out.println("拷贝文件消耗的时间为:" + (overtime - starttime) + "毫秒");

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("拷贝文件失败!");

} finally {

try {

// 关闭流资源

fis.close();

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("输入流关闭失败!");

}

try {

// 关闭流资源

fos.close();

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("输出流关闭失败!");

}

}

}

}

案例8-4 装饰设计模式的应用

一、案例描述

1、考核知识点

编号:00108006

名称: 装饰设计模式

2、练习目标

了解什么是装饰设计模式

掌握装饰设计模式的应用

3、需求分析

装饰设计模式是通过包装一个类,动态地增强它的功能的一个设计模式,为了让初学者掌握装饰设计模式的应用,在案例将通过使用NewPerson类装饰Person类,完成为Person类增强“吃饭”功能来学习。

4、设计思路(实现原理)

1)编写Person类,定义eat()方法,表示“吃饭”功能

2)编写NewPerson类,定义一个有参构造方法,通过构造方法可以将Person对象传入该类,在

NewPerson类定义newEat()方法,该方法对“吃饭”功能进行了扩展和增强。

3)编写Example04测试类,在main()方法中,分别通过Person和NewPerson对象调用装饰前后

的吃饭功能。

二、案例实现

/**

* 被装饰类

*/

class Person {

// 吃饭功能

public void eat(){

System.out.println("正在吃饭");

}

}

/**

* 装饰类

*/

class NewPerson {

// 装饰类中拥有被装饰类的引用

private Person p;

// 构造方法传入被装饰类的对象

public NewPerson(Person p) {

this.p = p;

}

// 通过装饰类增强吃饭功能

public void newEat() { System.out.println("饭前小酒"); p.eat();

System.out.println("抽一根烟"); System.out.println("饭后甜点");

}

} /**

* 测试类Example04 */

public class Example04 { public static void main(String[] args) { System.out.println("----装饰前----"); Person p = new Person(); p.eat();

System.out.println("----装饰后----"); //使用NewPerson 类来装修Person 类

NewPerson np = new NewPerson(new Person()); np.newEat(); }

}

运行结果如图8-6所示。

图8-6 运行结果

从运行结果可以看出,通过装饰设计模式成功增强了“吃饭”功能,达到预期效果。

三、案例总结

1、装饰设计模式具有以下特点:

(1) 装饰对象包含一个被装饰对象的引用。

(2) 装饰对象接受所有来自客户端的请求,再把这些请求转发给被装饰的对象。 (3) 装饰对象可以给被装饰对象增强功能。

(4) 一般情况下装饰和被装饰对象会具有相同的接口。

2、思考一下:装饰设计模式可以通过一个类增强另一个类的功能,而使用继承子类也可以对父类中的功能进行增强,针对增加功能这种情况请问使用装饰设计模式和继承有什么区别。

案例8-5 字节缓冲流拷贝大文件

一、案例描述

1、考核知识点

编号:00108007

名称: 字节缓冲流

2、练习目标

了解什么是字节缓冲流

了解字节缓冲流的优点

掌握如何使用字节缓冲流拷贝文件

3、需求分析

我们学习过使用自定义缓冲区高效读写文件,其实Java自身也提供了两个带缓冲的字节流,分别是BufferedInputStream和BufferdOutputStream。为了熟悉这两个字节缓冲流的使用,案例中将通过使用字节缓冲流一次读写一个字节数组的方式拷贝文件来学习。

4、设计思路(实现原理)

1)在source目录下存放“IO流.avi”文件,并确保target目录下没有上次拷贝遗留的文件。

2)编写Example05类。在main()方法中,分别创建缓冲字节输出流和缓冲字节输入流对象,并

指定拷贝文件的源及目标路径。

3)定义一个字节数组作为缓冲区,缓冲输入流将源文件数据读取到缓冲区中,然后缓冲输出流

将缓冲区中数据写入到目标文件中,循环往复直到文件拷贝结束,并计算拷贝文件总耗时。

4)使用close()方法,关闭流资源。

二、案例实现

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

/**

* 字节缓冲流一次读写一个字节数组

*/

public class Example05 {

public static void main(String[] args) {

BufferedInputStream bis = null;

BufferedOutputStream bos = null;

try {

bis = new BufferedInputStream(

new FileInputStream("source\\IO流.avi"));

bos = new BufferedOutputStream(new FileOutputStream(

"target\\IO流.avi"));

byte[] b = new byte[1024]; int len = 0;

long starttime = System.currentTimeMillis();//

获取拷贝文件前的系统时间

while ((len = bis.read(b)) != -1) { bos.write(b, 0, len);

}

long overtime = System.currentTimeMillis();// 获取拷贝文件结束的系统时间 System.out.println("拷贝文件消耗的时间为:" + (overtime - starttime) + "毫秒"); } catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("拷贝文件失败!"); } finally {

if (bis != null) { try { bis.close();

} catch (IOException e) { e.printStackTrace();

throw new RuntimeException("缓冲输入流关闭失败!"); }

}

if (bos != null) { try { bos.close();

} catch (IOException e) { e.printStackTrace();

throw new RuntimeException("缓冲输出流关闭失败!"); }

}

}

}

}

程序运行结束后,打开target 文件夹,发现source 文件夹中的“IO 流.avi ”文件被成功拷贝到了target 文件夹,如图8-7所示。

图8-7 拷贝结果

程序运行结束后,会在命令行窗口打印拷贝文件所消耗的时间,如图8-8所示。

图8-8运行结果

从运行结果可以看出,使用字节缓冲流一次读写一个字节数组的方式拷贝文件成功,并且速度较快。

三、案例总结

1、字节缓冲流在初次拷贝文件时耗时较长,之后耗时较少。

2、思考一下:多次拷贝一个较大的文件,比较教材中的字节缓冲流一次读写一个字节方式,与案例8-3中自定义缓冲区方式,以及本案例中字节缓冲流一次读写一个字节数组方式三者之间,谁的拷贝耗时最多?比较后发现教材中的方式最慢。

案例8-6 FileReader读取字符数据

一、案例描述

1、考核知识点

编号:00108008

名称: 字符流读取文件

2、练习目标

了解什么是FileReader字符流及其特点

了解FileReader和FileInputStream的区别

掌握如何使用FileReader字符流读取文本文件数据

3、需求分析

如果想从文件中直接读取字符可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。为了让初学者掌握FileReader字符流的使用,在案例中将针对一次读取一个字符的方式读取文本文件来学习。

4、设计思路(实现原理)

1)创建一个文本文件fr.txt,在文件中输入内容“Welcome to learn IO stream!”。

2)在同一目录下创建Example06.java文件,编写Example06类。

3)在main()方法中,通过FileReader(String fileName)构造方法创建字符输入流对象,并指定待读

取文件fr.txt的路径。

4)使用read()方法循环读取并输出数据,当方法返回值为-1时表示读取到文件结尾,循环结束。

5)使用close()方法,关闭流资源。

二、案例实现

import java.io.FileReader;

import java.io.IOException;

public class Example06 {

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

// 创建字符输入流对象

FileReader fr = new FileReader("fr.txt"); int by = 0;

// 判断是否是文件的结尾

while ((by = fr.read()) != -1) { // 不是就打印出读取的字符

System.out.print((char) by);

}

// 关闭字节输入流 fr.close();

}

}

运行结果如图8-9所示。

图8-9 运行结果

从运行结果可以看出,使用FileReader 成功地读取出文本文件数据。

三、案例总结

FileReader 和FileInputStream 有非常多相似之处,但是FileReader 每次读取的单位是一个字符,而FileInputStream 每次读取的单位是一个字节。

案例8-7 FileWriter 写入字符数据

一、案例描述

1、 考核知识点

编 号:00108009

名 称: 字符流写入文件

2、 练习目标

了解什么是FileWriter 字符流及其特点 了解FileWriter 和FileOutputStream 的区别

掌握如何使用FileWriter 字符流向文件写入字符数据

3、 需求分析

我们学习过FileOutputStream 写入数据,但是如果想向文本文件中写入字符数据,也可以使用FileWriter 类。为了让初学者掌握FileWriter 字符流的使用,案例中将通过FileWriter 字符流向fw.txt 文件中写入一串文字来学习。

4、 设计思路(实现原理)

1) 编写Example07类。

2) 在main 方法中,通过FileWriter(String fileName)构造方法创建字符输出流对象,并指定写入

的文件路径。

3)通过write()方法将一段字符串直接写入到文件。

4)调用close()方法,关闭流资源。

二、案例实现

import java.io.FileWriter;

import java.io.IOException;

public class Example07 {

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

// 创建字节输出流对象

FileWriter fw = new FileWriter("fw.txt");

// 将数组中数据写入文件

fw.write("欢迎学习IO流");

// 关闭输出流

fw.close();

}

}

程序运行后,会在当前目录下生成一个新的文本文件fw.txt,文件内容如图8-10所示。

图8-10fw.txt

从运行结果可以看出,使用FileWriter成功把数据写入文件。

三、案例总结

FileWriter和FileOutputStream有非常多相似之处,但是FileWriter每次写入的单位是一个字符,而FileOutputStream每次写入的单位是一个字节。

案例8-8 LineNumberReader读取加行号

一、案例描述

1、考核知识点

编号:00108010

名称: LineNumberReader

2、练习目标

掌握如何使用LineNumberReader 读取数据

掌握如何使用setLineNumber()和getLineNumber()方法设置和读取当前行号

3、 需求分析

如果想为文件内容加上行号,可以使用LineNumberReader ,它是一个可以跟踪行号的输入流。为了让初学者掌握LineNumberReader 的使用,案例中将通过演示读取“HelloWorld.java ”文件并为每行代码加上行号输出来学习。

4、 设计思路(实现原理)

1) 编写“HelloWrold.java ”文件,里面有一段HelloWorld 程序。 2) 在同一目录下,编写Example08类。

3) 在main()方法中,创建LineNumberReader 对象,并指定待读取文件“HelloWrold.java ”的路

径。

4) 使用setLineNumber()方法设置起始行号为100,并使用readLine()方法循环一行行读取文件并

输出,在输出时使用getLineNumber()添加当前行号,直至文件末尾。 5) 调用close()方法,关闭流资源。

二、案例实现

import java.io.FileReader; import java.io.IOException; import java.io.LineNumberReader;

public class Example08{ public static void main(String[] args)throws IOException { LineNumberReader lnr = new

LineNumberReader(new FileReader("HelloWorld.java"));

String line = null; lnr.setLineNumber(100);

while((line = lnr.readLine())!=null){ System.out.println(lnr.getLineNumber()+" "+line);

}

lnr.close();

}

}

待读取的“HelloWrold.java ”文件内容,如图8-11所示:

图8-11 HelloWrold.java

运行结果如图8-12所示。

图8-12运行结果

运行结果显示正常,添加行号输出达到预期。

三、案例总结

setLineNumber()方法设置当前行号,getLineNumber()方法读取当前行号。在案例当前行号初始值设为100,输出时行号却是从101开始的,这是因为LineNumberReader类在读取到换行符('\n')、回车符('\r')或者回车后紧跟换行符时,会将行号自动加1。

案例8-9 转换流拷贝文件

一、案例描述

1、考核知识点

编号:00108011

名称: 转换流

2、练习目标

了解什么是转换流

掌握如何使用InputStreamReader和OutputStreamWriter

3、需求分析

有时字节流和字符流之间也需要进行转换,这时就需要用到转换流。在JDK中提供了两个类可以将字节流转换为字符流,它们分别是InputStreamReader和OutputStreamWriter。为了让初学者掌握转换流的使用,案例中将演示通过转换流拷贝文件并转成大写来学习。

4、设计思路(实现原理)

1)在source目录下编写“HelloWrold.java”文件,里面有一段HelloWorld程序。

2)在同一目录下,编写Example09类。

3)在main()方法中,创建文件字节输入和输出流对象,然后分别使用转换流包装,为提高效率,

最后再通过缓冲流包装。

4)使用readLine()方法循环一行行读取源文件并转大写写入到目标文件,直至文件末尾。

5)调用close()方法,关闭流资源。

二、案例实现

import java.io.*;

public class Example10 {

public static void main(String[] args) {

BufferedReader bfr = null;

BufferedWriter bfw = null; try {

InputStream in = new FileInputStream("source\\HelloWorld.java"); // 字符的缓冲读取字节,将字节转成字符

InputStreamReader isr = new InputStreamReader(in); // 建立字符流缓冲区对象

bfr = new BufferedReader(isr);

OutputStream out = new FileOutputStream("target\\HelloWorld.java"); // 字符数据,输出到字节,将字符数据转成字节

OutputStreamWriter osw = new OutputStreamWriter(out); // 建立字符流的缓冲区对象

bfw = new BufferedWriter(osw); String line = null;

while ((line = bfr.readLine()) != null) { bfw.write(line.toUpperCase()); bfw.newLine();

}

} catch (IOException e) { throw new RuntimeException("文件拷贝失败!"); } finally {

try { if (bfw != null)

bfr.close();

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("输入流关闭失败!");

} try { if (bfw != null)

bfw.close(); } catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("输出流关闭失败!");

}

}

}

}

程序运行后,分别打开“source ”和“target ”目录下“HelloWorld.java ”文件,结果如图8-13所示:

图8-13拷贝结果

从结果可以看出,使用转换流拷贝文件并转大写操作成功。

三、案例总结

在使用转换流时,只能针对操作文本文件的字节流进行转换,如果字节流操作的是一张图片,此时转换为字符流就会造成数据丢失。

案例8-10 对象序列化与反序列化

一、案例描述

1、考核知识点

编号:00108013

名称: ObjectInputStream和ObjectOutputStream类

2、练习目标

了解什么是序列化和反序列化

掌握如何使用ObjectInputStream和ObjectOutputStream实现对象的序列化和反序列化

3、需求分析

使用ObjectOutputStream和ObjectInputStream可以实现对象的序列化和反序列化。为了让初学者掌握这两种类的使用,案例中将通过序列化Person对象到“oos.txt”文件,再反序列化读取该文件获取Person对象数据来学习。

4、设计思路(实现原理)

1)编写Person类,实现序列化接口,在类中定义name和age属性,生成get ()和set()方法,并

重写toString()方法。

2)编写Example10类,在main()方法中通过ObjectOutputStream将赋值后的Person对象序列化

到“oos.txt”文件。

3)通过ObjectInputStream读取该文件实现Person对象的反序列化,并打印该对象。

二、案例实现

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

public class Example10{

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

// 创建序列化流对象

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(

"oos.txt"));

// 创建对象

Person p = new Person("马云", 26);

// 将Person对象输出到输出流中

oos.writeObject(p);

oos.close();

// 创建反序列化流对象

ObjectInputStream ois = new ObjectInputStream(new FileInputStream( "oos.txt"));

// 从oos.txt中读取Person对象

Object obj =ois.readObject();

ois.close();

// 打印反序列化后的对象

System.out.println((Person)obj);

}

}

import java.io.Serializable;

public class Person implements Serializable {

private static final long serialVersionUID = 333558257579870816L;

private String name;

private int age;

public Person() {

}

public Person(String name, int age) {

https://www.360docs.net/doc/2d15490080.html, = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/2d15490080.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

// 重写toString()方法

public String toString() {

return "Person [name=" + name + ", age=" + age + "]";

}

}

程序运行后,在当前目录下生成了“oos.txt”文件,如图8-14所示:

图8-14生成文件

运行结果如图8-15所示。

图8-15运行结果

三、案例总结

值得注意的是,当对象进行序列化时,必须保证该对象实现Serializable接口,否则程序会出现NotSerializableException异常。

案例8-11 DataInputStream和DataOutputStream

一、案例描述

1、考核知识点

编号:00108013

名称: DataInputStream和DataOutputStream类

2、练习目标

掌握如何使用DataInputStream和DataOutputStream

3、需求分析

如果只需存储对象的成员数据,这些成员数据的类型又都是基本数据类型,这时就可以使用DataInputStream和DatOutputStream。为了让初学者掌握DataInputStream和DataOutputStream的用法,案例中将演示使用这两个类先向“dos.txt”文件中写入UTF-8的字符串然后再读取来学习。

4、设计思路(实现原理)

1)编写Example11类。

2)在main()方法中通过DataOutputStream向“oos.txt”文件中,写入字符编码为UTF-8的字符串

“你好”。

3)通过DataInputStream读取文件中该编码的字符串并打印。

他山之石企业知识管理案例分析完整篇.doc

他山之石企业知识管理案例分析1 他山之石——企业知识管理案例分析 案例1 安达信 安达信(Arthur Anderson, AA)公司主要从事会计与审计、税务、商务顾问、咨询服务等业务,因为它为客户提供的服务99.5%基于知识,因此,知识是企业最重要的资源,贯穿于决策和管理过程的始终。公司面临的最大挑战是如何将所有信息组合成一个中心知识库。该公司对知识管理的定义是:“促进个人和组织学习的过程”。在实施知识管理时,该公司的一些重要理念还包括: ●知识与学习密切相关; ●在将知识与管理结合时,遇到的最大问题是知识不容易管理,因为它存储在人们的头脑中; ●知识管理策略应该与公司的商业策略密切结合。 目标 ●帮助员工表达他们的思想; ●帮助知识经理们更好地组织知识; ●不断充实知识管理系统,使其内容更加丰富,鼓励员工使用它;

●力求使企业的所有知识都变成可以查询和获取的显性知识。 计划的实施 安达信成立了一个专门的知识管理委员会,负责制定具有竞争优势的策略。每一条服务线和每一个产业部门都有责任保证知识的共享。同时,每一条服务线和每个产业部门都配备了一名知识经理,共计60名,其中一些人全职负责知识管理工作。 ●CIO与CKO的职责 前者关注技术,后者的工作集中于知识处理、调查和评估用户对知识产品的使用情况。但无论工作重点如何,两者总是紧密地结合在一起进行合作。在企业内部,并不是所有的信息都能被上载到网上去,需要对它们进行评估,有价值的信息才能上载。 ●技术平台 安达信的知识管理系统基于普通的软硬件平台(Windows、Lotus Notes和PC机)。所采用 的三大技术是:群件技术、Internet/Intranet、数据库和指示系统(Database & Pointer System)。其中使用最频繁的技术是以下三种: ①Lotus Notes 确保信息能够安全地在全球范围内传播; ②语音邮件允许人们能够在任何情况下进行交流; ③知识基地提供最佳实践数据库。

知识管理案例分析文档

知识管理案例分析 盛大网络知识管理 专业信息管理信息系统 帅威 学号 100497119 指导老师郭亚军 2011-6-02

1.案例 1.1盛大网络公司简介 盛大(NASDAQ: SNDA)是中国领先的互动娱乐传媒公司,致力于通过互联网为用户提供多元化的娱乐服务。上海盛大网络发展有限公司成立于1999年11月,公司秉承运营网络娱乐媒体的雄厚实力,通过专业化的团队及先进网络技术,最大限度为用户挖掘网络娱乐产业的乐趣。盛大的服务、技术及管理团队每时每刻为用户提供优质服务,保障用户的娱乐需要。 1.2盛大遇到的问题 盛大CEO天桥最近为一个事情而头痛,史玉柱旗下的征途网络2005 年发布的同名网游《征途》与天桥此前发布的《英雄年代》极为相似,无论史如何辩解,事实就是这《征途》的研发队伍几乎全部来自盛大,而网游界后辈征途现在已成为盛大有力的竞争对手。这件事留给天桥心中多大的痛,这些员工的跳槽,带走了大量的盛大公司资料,以至于盛大处于被动的处境。这究竟是为什么?该怎么解决?怎么去防止一个员工的离开,整个计划就瘫痪的情况? 1.3盛大的解决办法 对于盛大而言,除了企业的惨痛教训之外,还有其更深远的想法。在人们的印象中,互联网企业更多的是抓住产业的发展,寻找一些机会和点子,而在管理方面难以和传统企业相比,盛大也未能免俗。2005年盛大转型做的盒子娱乐计

划市场反应不理想,同时盛大主营的网络游戏的收入持续下滑。2006年第一季度的财报显示,盛大净营收3.414亿元,同比下滑31.3%;净利润1180万元,同比下滑95%。与此同时,网易凭借网络游戏《梦幻西游》的成功,逐渐超越了盛大。天桥当时经受了来自华尔街和舆论界的多方质疑。 2006年,当媒体蜂拥报道盛大进行战略调整,天桥在盛大部狠抓管理和控制,寻求一套机制以实现“没有天桥,盛大也能运转”时,少有人注意到,信息化已纳入天桥的视野。实际上,在制造业等传统行业,ERP等信息化系统早就是企业的重要战略支撑,但是在互联网这个新兴行业,没人关心“向管理要效率”。显然,当天桥不管有多忙,每周五必到IT部门的例会上报到时,信息化已开始成为盛大的一项重要的企业策略。米丹宁告诉记者,“盛大开始把知识管理当做企业的一个战略来进行。” 而盛大在2007年脱胎换骨般的表现似乎在印证着天桥的正确。 1.31天桥的项目 盛大是在2006年5月启动知识管理项目的,当时盛大的情况并不乐观。实际上,短短几年来,盛大从最初的几个人发展到几千余人,在急剧转型扩背后,各种管理问题纷至沓来。员工频繁流动是其中的问题之一,往往一名员工走后,随身带走U盘或移动硬盘,就带走了盛大的很多资料。 不会有人比天桥更能感受到这种痛了。在2006年年初IT部门的一次例会上,天桥了解到目前在实施的工作流系统具备的一部分文档管理功能后,他觉得远远不够。后来在听了米丹宁介绍的知识管理后,天桥当即决定上知识管理项目。实际上,这个信息化项目竟然与盛大的其他业务项目一起,名列盛大 2007年的十大项目。当天桥开始寻求信息化的支持时,他再一次体现了其做事的超前性和前瞻性。也许是天桥太超前了,米丹宁与其产生了一点分歧,他认为当时并不是上这个项目最合适的时间。“这个项目真的能做起来吗?”当时来自盛大其他高层的质疑声也不断,原来盛大2004年上马的ERP系统并不成功,至今只用到财务等少数模块,盛大上下由此对信息化项目不“感冒”。当时的工作流系统还没开始运行,效果好坏有待考察,紧接着就上知识管理,看上去怎么都有些冒险。 但在盛大这样一个企业中,天桥的想法是别人很难撼动的,这一次依然如此。但天桥却无法左右知识管理界。当米丹宁带着他的团队考察了包括IBM、微软等国外七八家企业的产品后,心里凉了半截。原来,知识管理系统供应商本来就没有几家,而且提供的产品并不成熟,各家产品多数倾向于某一方面而非一个全面的平台,有的公司冠名的知识管理系统实际上只是在OA软件上加了一些功能。 而对互联网行业信息化水平的调查同样不容乐观。按常理,互联网企业的员工本身就在IT圈里,企业的信息化基础应该不差。但互联网企业没有像传统企业那样,把信息化单独提出来做,更多的是在做业务系统时顺带做的,而知识管理系统更是鲜有企业在做。最终,盛大选择了微软的平台,出动了部最优秀的员工和微软部分资深的技术员一起,一共耗费100多人/月合作开发了盛大的知识管理系统。对于自己开发这一事实,米丹宁有几分无奈:“这条路是很艰难的一条路,其实是没有办法才选择自己开发。” 实际上,一切似乎有些机缘巧合。10年前的方正基本上是一年员工数量翻一番,半年业务模式可能发生变化,信息化建设追不上企业发展的脚步,市场上“没有几个像样的系统”。而在10年后,盛大面临了同样的问题,米丹宁的选择

企业知识管理经典案例分析

企业知识管理案例分析 案例1 安达信 安达信(Arthur Anderson, AA) 公司主要从事会计与审计、税务、商务顾问、咨询服务等业务,因为它为客户提供的服务99.5% 基于知识,因此,知识是企业最重要的资源,贯穿于决策和管理过程的始终。公司面临的最大挑战是如何将所有信息组合成一个中心知识库。该公司对知识管理的定义是:“ 促进个人和组织学习的过程”。在实施知识管理时,该公司的一些重要理念还包括: ? 知识与学习密切相关; ? 在将知识与管理结合时,遇到的最大问题是知识不容易管理,因为它存储在人们的头脑中; ? 知识管理策略应该与公司的商业策略密切结合。 目标 ? 帮助员工表达他们的思想; ? 帮助知识经理们更好地组织知识; ? 不断充实知识管理系统,使其容更加丰富,鼓励员工使用它; ? 力求使企业的所有知识都变成可以查询和获取的显性知识。 计划的实施 安达信成立了一个专门的知识管理委员会,负责制定具有竞争优势的策略。每一条服务线和每一个产业部门都有责任保证知识的共享。同时,每一条服务线和每个产业部门都配备了一名知识经理,共计60 名,其中一些人全职负责知识管理工作。 ? CIO 与CKO 的职责 前者关注技术,后者的工作集中于知识处理、调查和评估用户对知识产品的使用情况。但无论工作重点如何,两者总是紧密地结合在一起进行合作。在企业部,并不是所有的信息都能被上载到网上去,需要对它们进行评估,有价值的信息才能上载。 ? 技术平台

安达信的知识管理系统基于普通的软硬件平台(Windows 、Lotus Notes 和PC 机)。所采用的三大技术是:群件技术、Internet/Intranet 、数据库和指示系统(Database & Pointer System)。其中使用最频繁的技术是以下三种: ① Lotus Notes 确保信息能够安全地在全球围传播; ②语音允许人们能够在任何情况下进行交流; ③知识基地提供最佳实践数据库。 实践 安达信的知识管理项目获得了以下成果: ①全球最佳实践项目(GBP ) ②网上安达信 所有员工都是部网的用户,网上提供的信息主要包括三个方面:公告(例如,金融市场产业)、相关资 源(例如,有关会议和有关公司其他投入产出的结果)以及网上对话与讨论。 ③电子知识蓝图 ④ 全球最佳实践基地(Global Best Practice Base ) 汇集了各类项目报告,共 2 万多页(同时有光盘版)。在总部有25 个人监督它的使用情况,并对容进行整理。该项目的定量和定性工具能够帮助人们构建事件的框架,并按优先次序排列。 ⑤ 商务咨询顾问 提供安达信所有的商务咨询方法(被制作成光盘),并提供50?100种工具,咨询人员可以将其作为辅 助工具。 ⑥ 专家向新手传递知识知识管理的难点之一是专家如何将自己的经验和知识传递给新手,在安达信,新手通过全球培训数据库获得知识。 经验教训 ? 引入Lotus Notes 时,并没有提供全球最佳实践数据库的能力,但事实证明这个数据库很有用,因此安达信应该与Lotus 协作,提供能满足全球最佳实践需求的产品信息。 ? 应该尽早采用委员会或小组方式推进知识共享的策略,在知识创新、评估以及监督等方面充分发挥知识经理的

知识管理案例分析

知识管理案例分析 摘要:作为知识经济的核心,知识越来越受到人们的重视,知识能够创造巨大的企业价值,这是十分简单的道理;可是,如何创造、收集、分享和利用这些知识,并将其转化为实际的价值,却不是一件容易的事。本文主要通过一个项目型公司的案例,介绍建立知识管理体系的策略和主要方法,同时还将介绍一家名列全球十大石油公司的大型国有企业的知识管理计划的部分内容。 一、客户的背景以及面临的挑战 我们的客户是一家以对外工程承包为核心业务的国际经济技术合作公司。在几十个国家承担过数百个各种不同形式的对外经济援助项目和国内建设项目。公司对外工程承包总额在12亿美元以上。公司总部设在北京,在亚洲、非洲、中东、欧洲、美洲和澳洲等地均设有代表处,承办公司的各类业务。 由于公司从事的大都是国际工程项目,项目的时间跨度一般比较长,有的甚至在10年以上,因此,全生命周期的项目管理对于企业的成功就变得至关重要。为此,在2001年,公司制定了向知识和资本密集型工程项目管理公司迈进的战略远景。 然而,许多因素制约着这一战略目标的实现。曾经有这样一个故事,公司在非洲承接了一个电站建设项目,项目组成员克服了语言文化法律和技术等方面的重重困难,终于按计划在两年时间内完成了电站建设;可惜的是由于没有将这些重要资料和经验进行及时整理,当公司投标非洲另一个电站的建设项目时,新的项目组差不多是从头开始收集当地的资料,在项目执行的过程中,许多原本已经解决的问题又一次出现,项目组不得不花费宝贵的时间进行重新协调和谈判,对项目成本和进度都造成了不利的影响。 之所以出现这样的情况,原因就在于公司还没有建立起有效的信息和知识共享的环境和机制。由于缺乏规范的和标准化的项目管理流程,每个项目组都是各有一套。公司中的绝大部分知识是以个人知识的形式存在的,包括员工个人头脑中的隐性知识与保存在个人电脑或文件柜里的显形知识。公司领导早就意识到将个人知识转化为组织知识的必要性,然而在推行知识共享体系的过程中,公司面临着许多挑战: ?每个项目组都有各自的经验和诀窍,许多经验都是通过教训才取得的,因此, 如果没有合适的激励措施,就不愿意贡献出来 ?即便愿意同大家分享个人知识,又不知道谁需要以及通过什么有效 的途径来分享,许多知识散落在各处,不了解如何分类,很少进行 整理,难以查找

知识管理案例分析

阅读使人充实,会谈使人敏捷,写作使人精确。——培根 知识管理案例分析法拉兹·日·阿卜——学问是异常珍贵的东西,从任何源泉吸收都不可耻。. 阅读使人充实,会谈使人敏捷,写作使人精确。——培根 金蝶软件(中国)有限公司知识管理案例 ——对流程的知识管理 一、公司简介 金蝶软件(中国)有限公司(以下简称金蝶)始创于1993年8月,主要为顾客提供企业管理软件产品(金蝶EAS、金蝶K/3、金蝶KIS)及相关服务。金蝶拥有38家以营销与服务为主的分支机构和2000余家咨询、技术、实施服务、分销等渠道伙伴;营销、服务及伙伴网络分为南方、北方、华东、西部四大区域,遍及200多个城市和地区。 金蝶是中国软件产业领导厂商、亚太地区企业管理软件龙头企业、全球软件市场中成长最快的独立软件厂商之一。金蝶是中国软件产业众多“第一”的缔造者:第一个WINDOWS版财务软件及小企业管理软件--金蝶KIS的缔造者;第一个BOS平台的缔造者;第一个基于互联网平台的三层结构的ERP系统--金蝶K/3的缔造者。 金蝶以引领管理模式进步、推动电子商务发展、帮助顾客成功为使命,为全球范围内超过50万家企业和政府组织成功提供了管理咨询和信息化服务。金蝶连续四年被IDC评为中国中小企业ERP市场占有率第一名、连续两年被《福布斯亚洲》评为亚洲最佳中小企业、2007年被Gartner评为在全世界范围内有能力提供下一代SOA服务的十九家主要厂商之一。2007年,IBM与雷曼兄弟入股金蝶国际,成为集团战略性股东,金蝶与IBM组成全球战略联盟,共同在SOA、市场销售、咨询与应用服务、Sass多个方面进行合作。同时金蝶拥有“中国名牌产

知识管理案例分析

知识管理案例分析

金蝶软件(中国)有限公司知识管理案例 ——对流程的知识管理一、公司简介 金蝶软件(中国)有限公司(以下简称金蝶)始创于1993年8月,主要为顾客提供企业管理软件产品(金蝶EAS、金蝶K/3、金蝶KIS)及相关服务。金蝶拥有38家以营销与服务为主的分支机构和2000余家咨询、技术、实施服务、分销等渠道伙伴;营销、服务及伙伴网络分为南方、北方、华东、西部四大区域,遍及200多个城市和地区。 金蝶是中国软件产业领导厂商、亚太地区企业管理软件龙头企业、全球软件市场中成长最快的独立软件厂商之一。金蝶是中国软件产业众多“第一”的缔造者:第一个WINDOWS版财务软件及小企业管理软件--金蝶KIS的缔造者;第一个BOS平台的缔造者;第一个基于互联网平台的三层结构的ERP系统--金蝶K/3的缔造者。 金蝶以引领管理模式进步、推动电子商务发展、帮助顾客成功为使命,为全球范围内超过50万家企业和政府组织成功提供了管理咨询和信息化服务。金蝶连续四年被IDC评为中国中小企业ERP市场占有率第一名、连续两年被《福布斯亚洲》评为亚洲最佳中小企业、2007年被Gartner评为在全世界范围内有能力提供下一代SOA服务的十九家主要厂商之一。2007年,IBM与雷曼兄弟入股金蝶国际,成为集团战略性股东,金蝶与IBM组成全球战略联盟,共同在SOA、市场销售、咨询与应用服务、Sass多个方面进行合作。同时金蝶拥有“中国名牌产品、中国驰名商标”等称号。 公司愿景:成为全球企业管理软件及电子商务服务市场的领导者。 公司的使命:引领管理模式进步,推动电子商务发展,帮助顾客成功。 核心价值观:客户第一、持续创新、诚信负责。

他山之石——企业知识管理案例分析

他山之石——企业知识管理案例分析 案例1 安达信 安达信(Arthur Anderson, AA)公司主要从事会计与审计、税务、商务顾问、咨询服务等业务,因为它为客户提供的服务99.5%基于知识,因此,知识是企业最重要的资源,贯穿于决策和管理过程的始终。公司面临的最大挑战是如何将所有信息组合成一个中心知识库。该公司对知识管理的定义是:“促进个人和组织学习的过程”。在实施知识管理时,该公司的一些重要理念还包括: ●知识与学习密切相关; ●在将知识与管理结合时,遇到的最大问题是知识不容易管理,因为它存储在人们的头脑中; ●知识管理策略应该与公司的商业策略密切结合。 目标 ●帮助员工表达他们的思想; ●帮助知识经理们更好地组织知识; ●不断充实知识管理系统,使其内容更加丰富,鼓励员工使用它; ●力求使企业的所有知识都变成可以查询和获取的显性知识。 计划的实施 安达信成立了一个专门的知识管理委员会,负责制定具有竞争优势的策略。每一条服务线和每一个产业部门都有责任保证知识的共享。同时,每一条服务线和每个产业部门都配备了一名知识经理,共计60名,其中一些人全职负责知识管理工作。 ●CIO与CKO的职责 前者关注技术,后者的工作集中于知识处理、调查和评估用户对知识产品的使用情况。但无论工作重点如何,两者总是紧密地结合在一起进行合作。在企业内部,并不是所有的信息都能被上载到网上去,需要对它们进行评估,有价值的信息才能上载。 ●技术平台 安达信的知识管理系统基于普通的软硬件平台(Windows、Lotus Notes和PC机)。所采用

的三大技术是:群件技术、Internet/Intranet、数据库和指示系统(Database & Pointer System)。其中使用最频繁的技术是以下三种: ①Lotus Notes 确保信息能够安全地在全球范围内传播; ②语音邮件允许人们能够在任何情况下进行交流; ③知识基地提供最佳实践数据库。 实践 安达信的知识管理项目获得了以下成果: ①全球最佳实践项目(GBP) ②网上安达信 所有员工都是内部网的用户,网上提供的信息主要包括三个方面:公告(例如,金融市场产业)、相关资源(例如,有关会议和有关公司其他投入产出的结果)以及网上对话与讨论。 ③电子知识蓝图 ④全球最佳实践基地(Global Best Practice Base) 汇集了各类项目报告,共2万多页(同时有光盘版)。在总部有25个人监督它的使用情况,并对内容进行整理。该项目的定量和定性工具能够帮助人们构建事件的框架,并按优先次序排列。 ⑤商务咨询顾问 提供安达信所有的商务咨询方法(被制作成光盘),并提供50~100种工具,咨询人员可以将其作为辅助工具。 ⑥专家向新手传递知识 知识管理的难点之一是专家如何将自己的经验和知识传递给新手,在安达信,新手通过全球培训数据库获得知识。 经验教训 ●引入Lotus Notes时,并没有提供全球最佳实践数据库的能力,但事实证明这个数据库很有用,因此安达信应该与Lotus协作,提供能满足全球最佳实践需求的产品信息。 ●应该尽早采用委员会或小组方式推进知识共享的策略,在知识创新、评估以及监督等方

知识管理案例分析(doc 5页)

知识管理案例分析(doc 5页)

知识管理案例分析 摘要:作为知识经济的核心,知识越来越受到人们的重视,知识能够创造巨大的企业价值,这是十分简单的道理;可是,如何创造、收集、分享和利用这些知识,并将其转化为实际的价值,却不是一件容易的事。本文主要通过一个项目型公司的案例,介绍建立知识管理体系的策略和主要方法,同时还将介绍一家名列全球十大石油公司的大型国有企业的知识管理计划的部分内容。 一、客户的背景以及面临的挑战 我们的客户是一家以对外工程承包为核心业务的国际经济技术合作公司。在几十个国家承担过数百个各种不同形式的对外经济援助项目和国内建设项目。公司对外工程承包总额在12亿美元以上。公司总部设在北京,在亚洲、非洲、中东、欧洲、美洲和澳洲等地均设有代表处,承办公司的各类业务。 由于公司从事的大都是国际工程项目,项目的时间跨度一般比较长,有的甚至在10年以上,因此,全生命周期的项目管理对于企业的成功就变得至关重要。为此,在2001年,公司制定了向知识和资本密集型工程项目管理公司迈进的战略远景。 然而,许多因素制约着这一战略目标的实现。曾经有这样一个故事,公司在非洲承接了一个电站建设项目,项目组成员克服了语言文化法律和技术等方面的重重困难,终于按计划在两年时间内完成了电站建设;可惜的是由于没有将这些重要资料和经验进行及时整理,当公司投标非洲另一个电站的建设项目时,新的项目组差不多是从头开始收集当地的资料,在项目执行的过程中,许多原本已经解决的问题又一次出现,项目组不得不花费宝贵的时间进行重新协调和谈判,对项目成本和进度都造成了不利的影响。 之所以出现这样的情况,原因就在于公司还没有建立起有效的信息和知识共享的环境和机制。由于缺乏规范的和标准化的项目管理流程,每个项目组都是各有一套。公司中的绝大部分知识是以个人知识的形式存在的,包括员工个人头脑中的隐性知识与保存在个人电脑或文件柜里的显形知识。公司领导早就意识到将个人知识转化为组织知识的必要性,然而在推行知识共享体系的过程中,公司面临着许多挑战: 每个项目组都有各自的经验和诀窍,许多经验都是通过教训才取得的,因此,如果没有合适的激励措施,就不愿意贡献出来

企业知识管理案例分析

企业知识管理案例分析 作者: admin 更新时间: 2008-12-7 15:08:40 文章来源:EAKMRC 案例1 安达信 安达信(Arthur Anderson, AA)公司主要从事会计与审计、税务、商务顾问、咨询服务等业务,因为它为客户提供的服务99.5%基于知识,因此,知识是企业最重要的资源,贯穿于决策和管理过程的始终。公司面临的最大挑战是如何将所有信息组合成一个中心知识库。该公司对知识管理的定义是:“促进个人和组织学习的过程”。在实施知识管理时,该公司的一些重要理念还包括: ● 知识与学习密切相关; ● 在将知识与管理结合时,遇到的最大问题是知识不容易管理,因为它存储在人们的头脑中; ● 知识管理策略应该与公司的商业策略密切结合。 目标 ● 帮助员工表达他们的思想; ● 帮助知识经理们更好地组织知识; ● 不断充实知识管理系统,使其内容更加丰富,鼓励员工使用它; ● 力求使企业的所有知识都变成可以查询和获取的显性知识。 计划的实施 安达信成立了一个专门的知识管理委员会,负责制定具有竞争优势的策略。每一条服务线和每一个产业部门都有责任保证知识的共享。同时,每一条服务线和每个产业部门都配备了一名知识经理,共计60名,其中一些人全职负责知识管理工作。 ● CIO与CKO的职责 前者关注技术,后者的工作集中于知识处理、调查和评估用户对知识产品的使用情况。但无论工作重点如何,两者总是紧密地结合在一起进行合作。在企业内部,并不是所有的信息都能被上载到网上去,需要对它们进行评估,有价值的信息才能上载。 ● 技术平台

安达信的知识管理系统基于普通的软硬件平台(Windows、Lotus Notes和PC机)。所采用的三大技术是:群件技术、Internet/Intranet、数据库和指示系统 (Database & Pointer System)。其中使用最频繁的技术是以下三种: ① Lotus Notes 确保信息能够安全地在全球范围内传播; ② 语音邮件允许人们能够在任何情况下进行交流; ③ 知识基地提供最佳实践数据库。 实践 安达信的知识管理项目获得了以下成果: ① 全球最佳实践项目(GBP) ② 网上安达信 所有员工都是内部网的用户,网上提供的信息主要包括三个方面:公告(例如,金融市场产业)、相关资源(例如,有关会议和有关公司其他投入产出的结果)以及网上对话与讨论。 ③ 电子知识蓝图 ④ 全球最佳实践基地(Global Best Practice Base) 汇集了各类项目报告,共2万多页(同时有光盘版)。在总部有25个人监督它的使用情况,并对内容进行整理。该项目的定量和定性工具能够帮助人们构建事件的框架,并按优先次序排列。 ⑤ 商务咨询顾问 提供安达信所有的商务咨询方法(被制作成光盘),并提供50~100种工具,咨询人员可以将其作为辅助工具。 ⑥ 专家向新手传递知识 知识管理的难点之一是专家如何将自己的经验和知识传递给新手,在安达信,新手通过全球培训数据库获得知识。 经验教训 ● 引入Lotus Notes时,并没有提供全球最佳实践数据库的能力,但事实证明这个数据库很有用,因此安达信应该与Lotus协作,提供能满足全球最佳实践需求的产品信息。

企业知识管理经典案例分析

企业知识管理案例分析 案例1 安达信 安达信(Arthur Anderson, AA)公司主要从事会计与审计、税务、商务顾问、咨询服务等业务,因为它为客户提供的服务99.5%基于知识,因此,知识是企业最重要的资源,贯穿于决策和管理过程的始终。公司面临的最大挑战是如何将所有信息组合成一个中心知识库。该公司对知识管理的定义是:“促进个人和组织学习的过程”。在实施知识管理时,该公司的一些重要理念还包括: ● 知识与学习密切相关; ● 在将知识与管理结合时,遇到的最大问题是知识不容易管理,因为它存储在人们的头脑中; ● 知识管理策略应该与公司的商业策略密切结合。 目标 ● 帮助员工表达他们的思想; ● 帮助知识经理们更好地组织知识; ● 不断充实知识管理系统,使其容更加丰富,鼓励员工使用它; ● 力求使企业的所有知识都变成可以查询和获取的显性知识。 计划的实施 安达信成立了一个专门的知识管理委员会,负责制定具有竞争优势的策略。每一条服务线和每一个产业部门都有责任保证知识的共享。同时,每一条服务线和每个产业部门都配备了一名知识经理,共计60名,其中一些人全职负责知识管理工作。 ● CIO与CKO的职责 前者关注技术,后者的工作集中于知识处理、调查和评估用户对知识产品的使用情况。但无论工作重点如何,两者总是紧密地结合在一起进行合作。在企业部,并不是所有的信息都能被上载到网上去,需要对它们进行评估,有价值的信息才能上载。 ● 技术平台

安达信的知识管理系统基于普通的软硬件平台(Windows、Lotus Notes和PC机)。所采用的三大技术是:群件技术、Internet/Intranet、数据库和指示系统 (Database & Pointer System)。其中使用最频繁的技术是以下三种: ① Lotus Notes 确保信息能够安全地在全球围传播; ②语音允许人们能够在任何情况下进行交流; ③知识基地提供最佳实践数据库。 实践 安达信的知识管理项目获得了以下成果: ①全球最佳实践项目(GBP) ②网上安达信 所有员工都是部网的用户,网上提供的信息主要包括三个方面:公告(例如,金融市场产业)、相关资源(例如,有关会议和有关公司其他投入产出的结果)以及网上对话与讨论。 ③电子知识蓝图 ④全球最佳实践基地(Global Best Practice Base) 汇集了各类项目报告,共2万多页(同时有光盘版)。在总部有25个人监督它的使用情况,并对容进行整理。该项目的定量和定性工具能够帮助人们构建事件的框架,并按优先次序排列。 ⑤商务咨询顾问 提供安达信所有的商务咨询方法(被制作成光盘),并提供50~100种工具,咨询人员可以将其作为辅助工具。 ⑥专家向新手传递知识 知识管理的难点之一是专家如何将自己的经验和知识传递给新手,在安达信,新手通过全球培训数据库获得知识。 经验教训 ● 引入Lotus Notes时,并没有提供全球最佳实践数据库的能力,但事实证明这个数据库很有用,因此安达信应该与Lotus协作,提供能满足全球最佳实践需求的产品信息。

知识管理案例分析

知识治理案例分析 摘要:作为知识经济的核心,知识越来越受到人们的重视,知识能够制造巨大的企业价值,这是十分简单的道理;但是,如何制造、收集、分享和利用这些知识,并将其转化为实际的价值,却不是一件容易的事。本文要紧通过一个项目型公司的案例,介绍建立知识治理体系的策略和要紧方法,同时还将介绍一家名列全球十大石油公司的大型国有企业的知识治理打算的部分内容。 一、客户的背景以及面临的挑战 我们的客户是一家以对外工程承包为核心业务的国际经济技术合作公司。在几十个国家承担过数百个各种不同形式的对外经济援助项目和国内建设项目。公司对外工程承包总额在12亿美元以上。公司总部设在北京,在亚洲、非洲、中东、欧洲、美洲和澳洲等地均设有代表处,承办公司的各类业务。

由于公司从事的大差不多上国际工程项目,项目的时刻跨度一般比较长,有的甚至在10年以上,因此,全生命周期的项目治理关于企业的成功就变得至关重要。为此,在2001年,公司制定了向知识和资本密集型工程项目治理公司迈进的战略远景。 然而,许多因素制约着这一战略目标的实现。曾经有如此一个故事,公司在非洲承接了一个电站建设项目,项目组成员克服了语言文化法律和技术等方面的重重困难,终于按打算在两年时刻内完成了电站建设;惋惜的是由于没有将这些重要资料和经验进行及时整理,当公司投标非洲另一个电站的建设项目时,新的项目组差不多是从头开始收集当地的资料,在项目执行的过程中,许多原本差不多解决的问题又一次出现,项目组不得不花费宝贵的时刻进行重新协调和谈判,对项目成本和进度都造成了不利的阻碍。 之因此出现如此的情况,缘故就在于公司还没有建立起有效的信息和知识共享的环境和机制。由于缺乏规范的和标准化的项目治理流程,每个项目组差不多上各有一套。公司中的绝大部分知识是以个人知识的形式存在的,包括职员个人头脑

知识管理——案例及案例分析

知识管理教学案例 案例1:主题知识系统 一、案例内容 尼康选择了由知识管理软件公司提供的基于智能神经网络技术的主题知识系统作为其泛欧洲地区的客户服务的支持系统。作为尼康欧洲网站中“Nikon Vision”系统的后台引擎,主题知识系统不仅仅提供了自动化的客户服务支持,同时也形成了一个交互式的学习系统,它能够与任何在尼康网站上浏览的人进行沟通,通过互动的方式学习。 面临挑战 在过去的4年中,尼康公司发布了多款数码相机,及其他数码产品。在不断提高对数码技术的关注程度的过程中,尼康认识到数码产品的市场客户比传统相机的市场客户需要更多的信息。与数码产品业务比起来,尼康公司的传统相机业务显得从容不迫。在以前,尼康的发烧友们乐于通过快速翻阅手册的方式学习所有与相机相关的内容。但是在数码时代,人们需要以更快、更容易理解的方式获得信息。除了在客户服务领域面临知识管理问题,尼康公司同样也面对着如何在企业内部有效地分发信息的问题。 知识管理系统选择 几年以前,尼康已经开始建立各种信息的HTML页面,并将它们发布在企业的内部网和公共网上,作为已有手册资料的补充。但是HTML技术有很大的局限性,使用原始的HTML 页面不是一种为客户提供自助服务的理想方式。尼康开始在市场上寻找知识管理产品,但是最初没有找到合适的软件。但最终选择了主题知识系统时,主题知识系统能够利用已有的HTML生成知识库,并能够以回答问题的方式,将其所包含的内容传递到尼康众多的客户那去。 系统实施效果 现在,尼康网站上的访问者能够在“Nikon Vision”栏目上使用英语(也可以使用法语或德语)输入问题。系统自动将问题的答案推送到使用者面前,并且将合适的答案排列在第一位。主题知识系统在人与计算机系统之间建立起了桥梁,使用户能够使用非精确的语言甚至是含有错误拼写的句子与计算机对话。在用户结束使用系统之前,系统会要求使用者对问题的答案进行打分,用户的回答将会用于调整答案的评分,提高系统下次回答相同问题的精确度。基于主题知识系统的统计信息能够改进尼康提供给客户信息的质量,更重要的是,利于有效地设计将来的产品。总而言之,主题知识系统能够大大增强尼康分发知识的能力,同时也大大增加了尼康获取知识的能力。 二、案例点评 Nikon Vision的效益超出尼康的预期。例如,主题知识系统在开始运行的第一个月里就处理了超过1000个用户查询。更重要的是,除了提供产品信息,尼康还建立了一个十分有趣的培训资源系统。主题知识系统正在帮助尼康的技术支持部门逐步超越传统技术作用。主题知识系统将尼康的访问者,无论他们目前是否是尼康的客户,锁定在能够终身享受数码影像乐趣的网站上。这将会对尼康的营销部门和研究部门等其他部门产生巨大的影响。但是,更基础的问题依然存在。比如:尼康正在逐步成为真正的知识管理者,正在逐步意识到尼康的知识领域,正在逐步能够将尼康的知识组织起来,发挥最大的价值。 1

案例:腾讯公司知识管理

腾讯公司的知识管理实践 知识管理(Knowledge Management,简称KM)是伴随着知识经济而产生的一个名词,短短几年时间,其从概念走向应用,并成为一个热门话题。知识管理的关键是知识的转化与创新,这就决定了知识管理必然以人的知识过程为内容。知识管理是由一系列知识活动构成的动态流程,也是使知识不断增值的价值创造过程,主要包括知识积累、知识应用、知识共享、知识交流和知识创新等。本文围绕腾讯公司的发展壮大历程,从知识视角加以解读分析,探寻其成功的秘籍与启示。 一、腾讯公司发展历程 腾讯(Tencent)成立于1998年11月,是中国创立最早、最成功的互联网企业之一。1998年11月12日,马化腾与张志东共同筹资注册成立“深圳市腾讯计算机系统有限公司”,推出无线互联网寻呼解决方案。2004年6月16日,在香港联交所主板公开上市,2008年6月10日起,腾讯控股入选恒生指数成分股,成为首个入选香港重要成分股指的中国互联网企业。2009年,腾讯营收总额达到人民币124亿元,净利润52亿元,市值超过400亿美元。经过10多年的高速发展,腾讯公司是目前中国最大的互联网综合服务提供商之一,也是中国服务用户最多的互联网企业之一。目前腾讯业务横跨即时通信、网络游戏、社交网络、互联网增值服务等领域,收入来源多样,各项业务稳健快速增长。 腾讯公司以“为用户提供一站式在线生活服务”为战略目标,构建了QQ、腾讯网、QQ游戏以及拍拍网四大网络平台,形成中国规模最大的网络社区。在满足用户信息传递与知识获取的需求方面,腾讯公司拥有门户网站腾讯网、QQ即时通讯工具、QQ邮箱以及SOSO搜索;在满足用户群体交流和资源共享方面,腾讯公司推出的QQ空间(Qzone)已成为中国最大的个人空间,并与访问量极大的论坛、聊天室、QQ群相互协同;在满足用户个性展示和娱乐需求方面,腾讯公司拥有非常成功的虚拟形象产品QQShow、QQ宠物、QQ游戏和QQMusic/Radio/Live(音乐/电台/电视直播)等产品,同时,还为手机用户提供了多种无线增值业务;在满足用户的交易需求方面,C2C电子商务平台——拍拍网已经上线,并完成了和整个社区平台的无缝整合。截至2008年3月31日为止,腾讯即时通讯工具QQ的注册用户数已经超过亿,活跃用户数超过亿,QQ游戏的同时在线人数达到400万,腾讯网已经成为了中国浏览量第一的综合门户网站,电子商务平台拍拍网也已经成为了中国第二大电子商务交易平台。 腾讯公司形成了自己鲜明的企业文化。公司以“成为最受尊敬的互联网企业”为发展愿景,“坚持自主创新,树立民族品牌”的长远发展规划,确立了“通过互联网服务提升人类生活品质”的使命,树立了“正直,尽责,合作,创新”的价值观。腾讯公司在即时通信、电子商务、在线支付、搜索引擎、信息安全以及游戏方面等都拥有了相当数量的专利申请。2007年,腾讯公司投资过亿元。 二、腾讯公司创新导向的知识管理体系架构 对知识管理的考察可以从不同角度进行。从知识管理的主体分析,知识管理包括个人知识与个人知识之间的管理、个人知识与组织知识之间的管理、组织知识与组织知识之间的管理等;从知识管理的主题分析,知识管理包括知识发现、知识聚集、知识创造、知识运用等。“知识发现、知识聚集、知识创造和知识运用”是知识管理的四大主题。与一般知识管理相比,以创新为导向的知识管理更加重视发现知识、聚集知识、创造知识和运用知识等过程在组织运营中的功能。知识发现是从企业内外海量的信息中识别出有效的、新颖的、潜在有用的知识,包括知识搜寻、辨识、过滤、抽取等过程。知识发现将信息变为知识,从数据矿山中找到蕴藏的知识金块,为知识创新和知识经济的发展做出贡献。知识聚集是在发现知识的基础上对有效知识进行分类整理系统化的过程,包括知识归类、存储、转移、整合等过程。知识创造是对现

企业知识管理经典案例分析..doc

企业知识管理经典案例分析1 企业知识管理案例分析 案例1 安达信 安达信(Arthur Anderson, AA)公司主要从事会计与审计、税务、商务顾问、咨询服务等业务,因为它为客户提供的服务99.5%基于知识,因此,知识是企业最重要的资源,贯穿于决策和管理过程的始终。公司面临的最大挑战是如何将所有信息组合成一个中心知识库。该公司对知识管理的定义是:“促进个人和组织学习的过程”。在实施知识管理时,该公司的一些重要理念还包括: ●知识与学习密切相关; ●在将知识与管理结合时,遇到的最大问题是知识不容易管理,因为它存储在人们的头脑中; ●知识管理策略应该与公司的商业策略密切结合。 目标 ●帮助员工表达他们的思想; ●帮助知识经理们更好地组织知识; ●不断充实知识管理系统,使其内容更加丰富,鼓励员工使用它; ●力求使企业的所有知识都变成可以查询和获取的显性知识。

计划的实施 安达信成立了一个专门的知识管理委员会,负责制定具有竞争优势的策略。每一条服务线和每一个产业部门都有责任保证知识的共享。同时,每一条服务线和每个产业部门都配备了一名知识经理,共计60名,其中一些人全职负责知识管理工作。 ●CIO与CKO的职责 前者关注技术,后者的工作集中于知识处理、调查和评估用户对知识产品的使用情况。但无论工作重点如何,两者总是紧密地结合在一起进行合作。在企业内部,并不是所有的信息都能被上载到网上去,需要对它们进行评估,有价值的信息才能上载。 ●技术平台 安达信的知识管理系统基于普通的软硬件平台(Windows、Lotus Notes 和PC机)。所采用的三大技术是:群件技术、Internet/Intranet、数据库和指示系统(Database & Pointer System)。其中使用最频繁的技术是以下三种: ①Lotus Notes 确保信息能够安全地在全球范围内传播; ②语音邮件允许人们能够在任何情况下进行交流; ③知识基地提供最佳实践数据库。 实践 安达信的知识管理项目获得了以下成果: ①全球最佳实践项目(GBP)

企业知识管制案例分析.doc

企业知识管理案例分析1 企业知识管理案例分析 作者:admin 更新时间:2008-12-7 15:08:40 文章来源:EAKMRC 案例1 安达信 安达信(Arthur Anderson, AA)公司主要从事会计与审计、税务、商务顾问、咨询服务等业务,因为它为客户提供的服务99.5%基于知识,因此,知识是企业最重要的资源,贯穿于决策和管理过程的始终。公司面临的最大挑战是如何将所有信息组合成一个中心知识库。该公司对知识管理的定义是:“促进个人和组织学习的过程”。在实施知识管理时,该公司的一些重要理念还包括: ●知识与学习密切相关; ●在将知识与管理结合时,遇到的最大问题是知识不容易管理,因为它存储在人们的头脑中; ●知识管理策略应该与公司的商业策略密切结合。 目标 ●帮助员工表达他们的思想; ●帮助知识经理们更好地组织知识;

●不断充实知识管理系统,使其内容更加丰富,鼓励员工使用它; ●力求使企业的所有知识都变成可以查询和获取的显性知识。 计划的实施 安达信成立了一个专门的知识管理委员会,负责制定具有竞争优势的策略。每一条服务线和每一个产业部门都有责任保证知识的共享。同时,每一条服务线和每个产业部门都配备了一名知识经理,共计60名,其中一些人全职负责知识管理工作。 ●CIO与CKO的职责 前者关注技术,后者的工作集中于知识处理、调查和评估用户对知识产品的使用情况。但无论工作重点如何,两者总是紧密地结合在一起进行合作。在企业内部,并不是所有的信息都能被上载到网上去,需要对它们进行评估,有价值的信息才能上载。 ●技术平台 安达信的知识管理系统基于普通的软硬件平台(Windows、Lotus Notes和PC机)。所采用的三大技术是:群件技术、Internet/Intranet、数据库和指示系统(Database & Pointer System)。其中使用最频繁的技术是以下三种: ①Lotus Notes 确保信息能够安全地在全球范围内传播; ②语音邮件允许人们能够在任何情况下进行交流;

相关文档
最新文档