手机版

百科生活 投稿

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

百科 2025-10-23 09:19:11 投稿 阅读:4174次

关于【客厅灯具哪个品牌好】,客厅灯具十大排行榜,今天小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

灯具是家家户户都必备的家具,客厅灯具选购也是很关键的,客厅是我们待客和休息的场所,灯具的外形品牌和质量需要重视的,灯具是会影响到整体的客厅风格,想要购买优质的灯具需要花费一番心思的,那么客厅灯具哪个品牌好?客厅灯具选购技巧有哪些?下面就由企业名片网的小编给大家介绍一下吧。



一、客厅灯具哪个品牌好


1.欧普照明


欧普照明是被消费者公认的知名品牌,公司成立于1996年,是一家集研发、生产和销售为一体的综合性企业。产品主要包括家居、电工、商照等领域。前国内有1000多家专卖店,在迪拜还成立了分公司。


2.TCL照明


TCL照明是一家从事产品研发、生产与销售的企业。公司产品涵盖了工程照明、家居照明、工业照明等30个产品系列。公司十分重视产品创新和技术创新,因为其品牌影响力和产品质量获得了“中国照明灯饰行业质量与品牌100强企业”等荣誉称号。


3.亚明照明


上海亚明飞亚照明电器是专业从事销售各类电光源产品、照明电器等系列的销售公司。今天的亚明电器以推广绿色照明产品为己任、提供的产品包括白炽灯、日光灯、高压汞灯等数以千计的照明产品。


4.三雄·极光照明


极光·照明一致致力于开发和生产高品质、高档次的节能产品。公司包含了各种灯具、光源、电工与电器配件等2000多个品种,现为国内综合竞争力的行业品牌之一。


5.阿波罗照明


阿波罗灯饰照明是一个创新型快速发展的公司,公司始终见此以科学研究、技术开发以及人才培养的管理模式。产品涵盖了家居灯饰、商照、光源等领域,一个综合性的大型公司。



二、选客厅灯具购技巧有哪些


1.考虑灯光的效果,也就是根据客厅的整个空间大小和灯具的功率来确定自己的客厅到底需要多少灯才能让客厅明亮。客厅较暗的角落可以考虑利用落地灯或者壁灯起到点缀效果。


2.灯具的外形和档次问题,灯具的外形一定要与客厅大小,样式等协调,其次就是要力求高雅,力戒奢华。客厅在住房里就相当于人的脸一样,如果灯具选择的太为平淡,则会让人觉得寒酸,如果选得太为豪华,那肯定会对来访者造成无形的压力,放不开手脚。


3.客厅的高低要搭配好灯具,如果你的客厅较高,可以选择灯光向上照射的大型吊灯,而且还应该让灯具与上部保留一定空间,好缩小空间的明暗差距。如果你的客厅较低,你可以选择吸顶式的灯具加上落地灯,这样客厅会显得更加明快大方,十分具有现代艺术气息。


本期小编给大家介绍的关于客厅灯具哪个品牌好和客厅灯具选购技巧有哪些的内容,到这里就结束了,相信大家对于灯具品牌和选购技巧有了更多的了解,想要了解更多装饰资讯,请继续关注企业名片网吧。


客厅灯买什么牌子耐用

买客厅灯,选择哪个牌子好?十大客厅灯具品牌NO1:欧普照明

欧普照明是被消费者公认的知名品牌,公司成立于1996年,是一家集研发、生产和销售为一体的综合性企业。产品主要包括家居、电工、商照等领域。前国内有1000多家专卖店,在迪拜还成立了分公司。

十大客厅灯具品牌NO2:TCL照明

TCL照明是一家从事产品研发、生产与销售的企业。公司产品涵盖了工程照明、家居照明、工业照明等30个产品系列。公司十分重视产品创新和技术创新,因为其品牌影响力和产品质量获得了“中国照明灯饰行业质量与品牌100强企业”等荣誉称号。

十大客厅灯具品牌NO3:雷士照明

雷士照明是一家专业生产照明电器与电气装置的制造商,产品涵盖了商业照明、家居照明、户外照明等种类。在2005年海入选了2005年中国成长企业100强。

 客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

十大客厅灯具品牌NO4:松下照明

1918年创立的松下电器,已为大家所熟知。松下电器除了家电外还生产如DVD等电子产品,后来扩及到了电子零件、半导体等。

十大客厅灯具品牌NO5:华艺照明

华艺灯饰照明公司位于中国灯饰之都中山市古镇。20多年来,始终坚持走“优质”、“专业”的路线。因此成为了享誉盛名的综合性公司。

十大客厅灯具品牌NO6:亚明照明

上海亚明飞亚照明电器是专业从事销售各类电光源产品、照明电器等系列的销售公司。今天的亚明电器以推广绿色照明产品为己任、提供的产品包括白炽灯、日光灯、高压汞灯等数以千计的照明产品。

十大客厅灯具品牌NO7:三雄·极光照明

极光·照明一致致力于开发和生产高品质、高档次的节能产品。公司包含了各种灯具、光源、电工与电器配件等2000多个品种,现为国内最具综合竞争力的行业品牌之一。

十大客厅灯具品牌NO8:阿波罗照明

阿波罗灯饰照明是一个创新型快速发展的公司,公司始终见此以科学研究、技术开发以及人才培养的管理模式。产品涵盖了家居灯饰、商照、光源等领域,一个综合性的大型公司。

十大客厅灯具品牌NO9:佛山照明

佛山电器公司是1958年成立的国营企业。公司主要生产和经营各种电光源和其配套企业,主要产品有装饰灯、碘钨灯、汽车灯等产品。在国内外享有“中国灯王”的美誉。

客厅灯具十大知名品牌吊灯

客厅灯具吊灯十大知名品牌:飞利浦、华艺照明、欧普照明、宝辉灯饰、胜球灯饰、雷士照明、开元灯饰、文联灯饰、月影灯饰、新特丽照明。

1、飞利浦

飞利浦是1891年在荷兰创立的,是家喻户晓的一个品牌,在照明方面是处于领先地位,在其他产品也有很好的口碑。

2、华艺照明

华艺照明于1986年在中山古镇创立,发展至今,已成为国内照明灯饰行业的领袖品牌,着力打造健康舒适的照明方式,还荣获了十大家居照明品牌的称号。

3、欧普照明

欧普照明成立于1996年,在世界多个国家都有发展,坚持以光创造价值的理念,着力为每一个人打造适合他们需求的灯光。

4、宝辉灯饰

宝辉灯饰于1979年成立于香港,主要打造水晶灯饰,在灯饰行业中拥有完整的生产链。

5、胜球灯饰

胜球灯饰成立于1992年,主要研发民用、工程灯和商业照明灯饰,产品畅销一百多个国家。

6、雷士照明

雷士照明创立于1998年,创立至今已成为中国照明行业非常有影响力的企业,主要着力打造led照明灯系列。

7、开元灯饰

开元灯饰创立于1999年,主要经营多款照明灯,旗下产品获得诸多安全认证,是知名灯饰企业。

8、月影灯饰

月影灯饰创立于2011年,旗下的全铜灯饰非常畅销,实力不容小觑。

9、文联灯饰

文联灯饰创立于1993年,主要打造酒店装饰,富丽堂皇,是著名灯具品牌之一,是全国诸多的酒店灯饰的合作伙伴。质量可靠,值得信赖。

10、新特丽照明

新特丽创立于1996年,在中国规模较大的一个照明品牌,秉承做灯饰界的索尼为目标,着力打造一流的灯饰。

Java IO 基础知识总结(精准详细)

IO 流简介

IO 即 Input/Output ,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。数据传输过程类似于水流,因此称为 IO 流。IO 流在 Java 中分为输入流和输出流,而根据数据的处理方式又分为字节流和字符流。

Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。

  • InputStream/Reader : 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
  • OutputStream/Writer : 所有输出流的基类,前者是字节输出流,后者是字符输出流。

字节流

InputStream(字节输入流)

InputStream用于从源头(通常是文件)读取数据(字节信息)到内存中,java.io.InputStream抽象类是所有字节输入流的父类。

InputStream 常用方法 :

  • read() :返回输入流中下一个字节的数据。返回的值介于 0 到 255 之间。如果未读取任何字节,则代码返回 -1,表示文件结束。
  • read(byteb[ ])bb-1b.lengthread(b, 0, b.length)
  • read(byteb[],intoff,intlen) read(byte b[ ]) off len
  • skip(long n) :忽略输入流中的 n 个字节 ,返回实际忽略的字节数。
  • available():返回输入流中可以读取的字节数。
  • close():关闭输入流释放相关的系统资源。

从 Java 9 开始, InputStream新增加了多个实用的方法:

  • readAllBytes():读取输入流中的所有字节,返回字节数组。
  • readNBytes(byte[] b, int off, int len):阻塞直到读取len个字节。
  • transferTo(OutputStream out):将所有字节从一个输入流传递到一个输出流。

FileInputStream是一个比较常用的字节输入流对象,可直接指定文件路径,可以直接读取单字节数据,也可以读取至字节数组中。

FileInputStream代码示例:

try (InputStream fis = new FileInputStream("input.txt")) { System.out.println("Number of remaining bytes:" + fis.available()); int content; long skip = fis.skip(2); System.out.println("The actual number of bytes skipped:" + skip); System.out.print("The content read from file:"); while ((content = fis.read()) != -1) { System.out.print((char) content); }} catch (IOException e) { e.printStackTrace();}

input.txt文件内容:

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

输出:

Number of remaining bytes:11The actual number of bytes skipped:2The content read from file:JavaGuide

不过,一般我们是不会直接单独使用FileInputStream,通常会配合BufferedInputStream(字节缓冲输入流,后文会讲到)来使用。

像下面这段代码在我们的项目中就比较常见,我们通过readAllBytes()读取输入流所有字节并将其直接赋值给一个String对象。

// 新建一个 BufferedInputStream 对象BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("input.txt"));// 读取文件的内容并复制到 String 对象中String result = new String(bufferedInputStream.readAllBytes());System.out.println(result);

DataInputStream用于读取指定类型数据,不能单独使用,必须结合FileInputStream。

FileInputStream fileInputStream = new FileInputStream("input.txt");//必须将fileInputStream作为构造参数才能使用DataInputStream dataInputStream = new DataInputStream(fileInputStream);//可以读取任意具体的类型数据dataInputStream.readBoolean();dataInputStream.readInt();dataInputStream.readUTF();

ObjectInputStream 用于从输入流中读取 Java 对象(反序列化), ObjectOutputStream用于将对象写入到输出流(序列化)。

ObjectInputStream input = new ObjectInputStream(new FileInputStream("object.data"));MyClass object = (MyClass) input.readObject();input.close();

另外,用于序列化和反序列化的类必须实现Serializable接口,对象中如果有属性不想被序列化,使用transient修饰。

OutputStream(字节输出流)

OutputStream用于将数据(字节信息)写入到目的地(通常是文件),java.io.OutputStream抽象类是所有字节输出流的父类。

OutputStream 常用方法 :

  • write(int b):将特定字节写入输出流。
  • write(byte b[ ]) b write(b,0, b.length)
  • write(byte[] b, intoff,intlen) write(byte b[ ]) off len
  • flush():刷新此输出流并强制写出所有缓冲的输出字节。
  • close():关闭输出流释放相关的系统资源。

FileOutputStream是最常用的字节输出流对象,可直接指定文件路径,可以直接输出单字节数据,也可以输出指定的字节数组。

FileOutputStream代码示例:

try (FileOutputStream output = new FileOutputStream("output.txt")) { byte[] array = "JavaGuide".getBytes(); output.write(array);} catch (IOException e) { e.printStackTrace();}

运行结果:

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

类似于FileInputStream,FileOutputStream通常也会配合BufferedOutputStream(字节缓冲输出流,后文会讲到)来使用。

FileOutputStream fileOutputStream = new FileOutputStream("output.txt");BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream)

DataOutputStream用于写入指定类型数据,不能单独使用,必须结合FileOutputStream

// 输出流FileOutputStream fileOutputStream = new FileOutputStream("out.txt");DataOutputStream dataOutputStream = new DataOutputStream(fileOutputStream);// 输出任意数据类型dataOutputStream.writeBoolean(true);dataOutputStream.writeByte(1);

ObjectOutputStream 用于从输入流中读取 Java 对象( ObjectInputStream,反序列化)或者将对象写入到输出流(ObjectOutputStream,序列化)。

ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("file.txt")Person person = new Person("Guide哥", "JavaGuide作者");output.writeObject(person);

字符流

不管是文件读写还是网络发送接收,信息的最小存储单元都是字节。 那为什么 I/O 流操作要分为字节流操作和字符流操作呢?

个人认为主要有两点原因:

  • 字符流是由 Java 虚拟机将字节转换得到的,这个过程还算是比较耗时。
  • 如果我们不知道编码类型就很容易出现乱码问题。

乱码问题这个很容易就可以复现,我们只需要将上面提到的FileInputStream代码示例中的input.txt文件内容改为中文即可,原代码不需要改动。

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

输出:

Number of remaining bytes:9The actual number of bytes skipped:2The content read from file:§å®¶å¥½

可以很明显地看到读取出来的内容已经变成了乱码。

因此,I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。

字符流默认采用的是Unicode编码,我们可以通过构造方法自定义编码。顺便分享一下之前遇到的笔试题:常用字符编码所占字节数?utf8 :英文占 1 字节,中文占 3 字节, unicode :任何字符都占 2 个字节, gbk :英文占 1 字节,中文占 2 字节。

Reader(字符输入流)

Reader用于从源头(通常是文件)读取数据(字符信息)到内存中,java.io.Reader抽象类是所有字符输入流的父类。

Reader用于读取文本,InputStream用于读取原始字节。

Reader 常用方法 :

  • read() : 从输入流读取一个字符。
  • read(char[] cbuf) cbuf read(cbuf,0, cbuf.length)
  • read(char[] cbuf, intoff,intlen)read(char[] cbuf) off len
  • skip(long n) :忽略输入流中的 n 个字符 ,返回实际忽略的字符数。
  • close() : 关闭输入流并释放相关的系统资源。

InputStreamReader是字节流转换为字符流的桥梁,其子类FileReader是基于该基础上的封装,可以直接操作字符文件。

// 字节流转换为字符流的桥梁public class InputStreamReader extends Reader {}// 用于读取字符文件public class FileReader extends InputStreamReader {}

FileReader代码示例:

try (FileReader fileReader = new FileReader("input.txt");) { int content; long skip = fileReader.skip(3); System.out.println("The actual number of bytes skipped:" + skip); System.out.print("The content read from file:"); while ((content = fileReader.read()) != -1) { System.out.print((char) content); }} catch (IOException e) { e.printStackTrace();}

input.txt文件内容:

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

输出:

The actual number of bytes skipped:3The content read from file:我是Guide。

Writer(字符输出流)

Writer用于将数据(字符信息)写入到目的地(通常是文件),java.io.Writer抽象类是所有字节输出流的父类。

Writer 常用方法 :

  • write(int c) : 写入单个字符。
  • write(char[] cbuf) cbuf write(cbuf,0, cbuf.length)
  • write(char[] cbuf, intoff,intlen)write(char[] cbuf) off len
  • write(String str):写入字符串,等价于write(str, 0, str.length())。
  • write(Stringstr,intoff,intlen) write(String str) off len
  • append(CharSequence csq) Writer Writer
  • append(char c) Writer Writer
  • flush():刷新此输出流并强制写出所有缓冲的输出字符。
  • close():关闭输出流释放相关的系统资源。

OutputStreamWriter是字符流转换为字节流的桥梁,其子类FileWriter是基于该基础上的封装,可以直接将字符写入到文件。

// 字符流转换为字节流的桥梁public class InputStreamReader extends Reader {}// 用于写入字符到文件public class FileWriter extends OutputStreamWriter {}

FileWriter代码示例:

try (Writer output = new FileWriter("output.txt")) { output.write("你好,我是Guide。");} catch (IOException e) { e.printStackTrace();}

输出结果:

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

字节缓冲流

IO 操作是很消耗性能的,缓冲流将数据加载至缓冲区,一次性读取/写入多个字节,从而避免频繁的 IO 操作,提高流的传输效率。

字节缓冲流这里采用了装饰器模式来增强InputStream和OutputStream子类对象的功能。

举个例子,我们可以通过BufferedInputStream(字节缓冲输入流)来增强FileInputStream的功能。

// 新建一个 BufferedInputStream 对象BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("input.txt"));

字节流和字节缓冲流的性能差别主要体现在我们使用两者的时候都是调用write(int b)和read() 这两个一次只读取一个字节的方法的时候。由于字节缓冲流内部有缓冲区(字节数组),因此,字节缓冲流会先将读取到的字节存放在缓存区,大幅减少 IO 次数,提高读取效率。

我使用write(int b)和read()方法,分别通过字节流和字节缓冲流复制一个524.9 mb 的 PDF 文件耗时对比如下:

使用缓冲流复制PDF文件总耗时:15428 毫秒使用普通字节流复制PDF文件总耗时:2555062 毫秒

两者耗时差别非常大,缓冲流耗费的时间是字节流的 1/165。

测试代码如下:

@Testvoid copy_pdf_to_another_pdf_buffer_stream() { // 记录开始时间 long start = System.currentTimeMillis(); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("深入理解计算机操作系统.pdf")); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("深入理解计算机操作系统-副本.pdf"))) { int content; while ((content = bis.read()) != -1) { bos.write(content); } } catch (IOException e) { e.printStackTrace(); } // 记录结束时间 long end = System.currentTimeMillis(); System.out.println("使用缓冲流复制PDF文件总耗时:" + (end - start) + " 毫秒");}@Testvoid copy_pdf_to_another_pdf_stream() { // 记录开始时间 long start = System.currentTimeMillis(); try (FileInputStream fis = new FileInputStream("深入理解计算机操作系统.pdf"); FileOutputStream fos = new FileOutputStream("深入理解计算机操作系统-副本.pdf")) { int content; while ((content = fis.read()) != -1) { fos.write(content); } } catch (IOException e) { e.printStackTrace(); } // 记录结束时间 long end = System.currentTimeMillis(); System.out.println("使用普通流复制PDF文件总耗时:" + (end - start) + " 毫秒");}

如果是调用read(byte b[])和write(byte b[], int off, int len)这两个写入一个字节数组的方法的话,只要字节数组的大小合适,两者的性能差距其实不大,基本可以忽略。

这次我们使用read(byte b[])和write(byte b[], int off, int len) 方法,分别通过字节流和字节缓冲流复制一个 524.9 mb 的 PDF 文件耗时对比如下:

使用缓冲流复制PDF文件总耗时:695 毫秒使用普通字节流复制PDF文件总耗时:989 毫秒

两者耗时差别不是很大,缓冲流的性能要略微好一点点。

测试代码如下:

@Testvoid copy_pdf_to_another_pdf_with_byte_array_buffer_stream() { // 记录开始时间 long start = System.currentTimeMillis(); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("深入理解计算机操作系统.pdf")); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("深入理解计算机操作系统-副本.pdf"))) { int len; byte[] bytes = new byte[4 * 1024]; while ((len = bis.read(bytes)) != -1) { bos.write(bytes, 0, len); } } catch (IOException e) { e.printStackTrace(); } // 记录结束时间 long end = System.currentTimeMillis(); System.out.println("使用缓冲流复制PDF文件总耗时:" + (end - start) + " 毫秒");}@Testvoid copy_pdf_to_another_pdf_with_byte_array_stream() { // 记录开始时间 long start = System.currentTimeMillis(); try (FileInputStream fis = new FileInputStream("深入理解计算机操作系统.pdf"); FileOutputStream fos = new FileOutputStream("深入理解计算机操作系统-副本.pdf")) { int len; byte[] bytes = new byte[4 * 1024]; while ((len = fis.read(bytes)) != -1) { fos.write(bytes, 0, len); } } catch (IOException e) { e.printStackTrace(); } // 记录结束时间 long end = System.currentTimeMillis(); System.out.println("使用普通流复制PDF文件总耗时:" + (end - start) + " 毫秒");}

BufferedInputStream(字节缓冲输入流)

BufferedInputStream 从源头(通常是文件)读取数据(字节信息)到内存的过程中不会一个字节一个字节的读取,而是会先将读取到的字节存放在缓存区,并从内部缓冲区中单独读取字节。这样大幅减少了 IO 次数,提高了读取效率。

BufferedInputStream内部维护了一个缓冲区,这个缓冲区实际就是一个字节数组,通过阅读BufferedInputStream源码即可得到这个结论。

publicclass BufferedInputStream extends FilterInputStream { // 内部缓冲区数组 protected volatile byte buf[]; // 缓冲区的默认大小 private static int DEFAULT_BUFFER_SIZE = 8192; // 使用默认的缓冲区大小 public BufferedInputStream(InputStream in) { this(in, DEFAULT_BUFFER_SIZE); } // 自定义缓冲区大小 public BufferedInputStream(InputStream in, int size) { super(in); if (size <= 0) { throw new IllegalArgumentException("Buffer size <= 0"); } buf = new byte[size]; }}

缓冲区的大小默认为8192字节,当然了,你也可以通过BufferedInputStream(InputStream in, int size)这个构造方法来指定缓冲区的大小。

BufferedOutputStream(字节缓冲输出流)

BufferedOutputStream 将数据(字节信息)写入到目的地(通常是文件)的过程中不会一个字节一个字节的写入,而是会先将要写入的字节存放在缓存区,并从内部缓冲区中单独写入字节。这样大幅减少了 IO 次数,提高了读取效率

try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("output.txt"))) { byte[] array = "JavaGuide".getBytes(); bos.write(array);} catch (IOException e) { e.printStackTrace();}

类似于BufferedInputStream,BufferedOutputStream内部也维护了一个缓冲区,并且,这个缓存区的大小也是8192字节。

字符缓冲流

BufferedReader(字符缓冲输入流)和BufferedWriter(字符缓冲输出流)类似于BufferedInputStream(字节缓冲输入流)和BufferedOutputStream(字节缓冲输入流),内部都维护了一个字节数组作为缓冲区。不过,前者主要是用来操作字符信息。

打印流

下面这段代码大家经常使用吧?

System.out.print("Hello!");System.out.println("Hello!");

System.out实际是用于获取一个PrintStream对象,print方法实际调用的是PrintStream对象的write方法。

PrintStream属于字节打印流,与之对应的是PrintWriter(字符打印流)。PrintStream是OutputStream的子类,PrintWriter是Writer的子类。

public class PrintStream extends FilterOutputStream implements Appendable, Closeable {}public class PrintWriter extends Writer {}

随机访问流

这里要介绍的随机访问流指的是支持随意跳转到文件的任意位置进行读写的RandomAccessFile。

RandomAccessFile的构造方法如下,我们可以指定mode(读写模式)。

// openAndDelete 参数默认为 false 表示打开文件并且这个文件不会被删除public RandomAccessFile(File file, String mode) throws FileNotFoundException { this(file, mode, false);}// 私有方法private RandomAccessFile(File file, String mode, boolean openAndDelete) throws FileNotFoundException{ // 省略大部分代码}

读写模式主要有下面四种:

  • r : 只读模式。
  • rw : 读写模式
  • rws rw rws
  • rwd rw rwd

文件内容指的是文件中实际保存的数据,元数据则是用来描述文件属性比如文件的大小信息、创建和修改时间。

RandomAccessFile中有一个文件指针用来表示下一个将要被写入或者读取的字节所处的位置。我们可以通过RandomAccessFile的seek(long pos)方法来设置文件指针的偏移量(距文件开头pos个字节处)。如果想要获取文件指针当前的位置的话,可以使用getFilePointer()方法。

RandomAccessFile代码示例:

RandomAccessFile randomAccessFile = new RandomAccessFile(new File("input.txt"), "rw");System.out.println("读取之前的偏移量:" + randomAccessFile.getFilePointer() + ",当前读取到的字符" + (char) randomAccessFile.read() + ",读取之后的偏移量:" + randomAccessFile.getFilePointer());// 指针当前偏移量为 6randomAccessFile.seek(6);System.out.println("读取之前的偏移量:" + randomAccessFile.getFilePointer() + ",当前读取到的字符" + (char) randomAccessFile.read() + ",读取之后的偏移量:" + randomAccessFile.getFilePointer());// 从偏移量 7 的位置开始往后写入字节数据randomAccessFile.write(new byte[]{'H', 'I', 'J', 'K'});// 指针当前偏移量为 0,回到起始位置randomAccessFile.seek(0);System.out.println("读取之前的偏移量:" + randomAccessFile.getFilePointer() + ",当前读取到的字符" + (char) randomAccessFile.read() + ",读取之后的偏移量:" + randomAccessFile.getFilePointer());

input.txt文件内容:

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

输出:

读取之前的偏移量:0,当前读取到的字符A,读取之后的偏移量:1读取之前的偏移量:6,当前读取到的字符G,读取之后的偏移量:7读取之前的偏移量:0,当前读取到的字符A,读取之后的偏移量:1

input.txt文件内容变为ABCDEFGHIJK。

RandomAccessFile的write方法在写入对象的时候如果对应的位置已经有数据的话,会将其覆盖掉。

RandomAccessFile randomAccessFile = new RandomAccessFile(new File("input.txt"), "rw");randomAccessFile.write(new byte[]{'H', 'I', 'J', 'K'});

假设运行上面这段程序之前input.txt文件内容变为ABCD,运行之后则变为HIJK。

RandomAccessFile比较常见的一个应用就是实现大文件的断点续传。何谓断点续传?简单来说就是上传文件中途暂停或失败(比如遇到网络问题)之后,不需要重新上传,只需要上传那些未成功上传的文件分片即可。分片(先将文件切分成多个文件分片)上传是断点续传的基础。

RandomAccessFile可以帮助我们合并文件分片,示例代码如下:

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

我在《Java 面试指北》中详细介绍了大文件的上传问题。

客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)

RandomAccessFile的实现依赖于FileDescriptor (文件描述符) 和 FileChannel(内存映射文件)。

·········· END ··············

本文关键词:客厅灯具品牌排行前十名,客厅灯具哪个品牌好用,客厅灯具什么牌子的好,客厅灯具哪个品牌好质量好,客厅灯具哪个品牌好一点。这就是关于《客厅灯具哪个品牌好,客厅灯具十大排行榜(基础知识总结<精准详细>)》的所有内容,希望对您能有所帮助!

本文链接:https://bk.89qw.com/a-770651

最近发表
网站分类