首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么蜡染不能用OutputStream保存.svg文件?

蜡染不能用OutputStream保存.svg文件的原因是因为.svg文件是一种基于XML的矢量图形格式,它使用了一系列的XML标签来描述图形,包括路径、形状、颜色等信息。而OutputStream是用于字节流的输出流,它主要用于保存二进制数据或文本数据,不适合保存XML格式的文件。

要保存.svg文件,应该使用Writer或者其他适合保存文本数据的输出流。可以使用BufferedWriter或FileWriter等类来创建一个Writer对象,然后将.svg文件的内容以文本形式写入到输出流中,最后保存到文件中。

以下是一个示例代码,演示如何使用Writer保存.svg文件:

代码语言:txt
复制
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class SaveSVGFile {
    public static void main(String[] args) {
        String svgContent = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"200\">\n" +
                "  <circle cx=\"100\" cy=\"100\" r=\"50\" fill=\"red\" />\n" +
                "</svg>";

        try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.svg"))) {
            writer.write(svgContent);
            System.out.println("SVG file saved successfully.");
        } catch (IOException e) {
            System.out.println("Failed to save SVG file: " + e.getMessage());
        }
    }
}

在上述示例中,我们创建了一个Writer对象,并使用BufferedWriter包装它,然后将.svg文件的内容写入到输出流中。最后,通过调用close()方法关闭输出流,完成文件的保存。

请注意,以上示例仅用于演示如何保存.svg文件,实际应用中可能需要根据具体需求进行适当的修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaSE 基础学习之五 —— IO 操作 (java. io.*)

,FileOutputStream 为文件字节输出流,两者都是 InputStream 与 OutputStream 的重要子类。...一种情况是可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长; 另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。...当我们明晰了为什么需要 Java 序列化和反序列化后,我们很自然地会想 Java 序列化的好处。...实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里); 实现远程通信,即在网络上传送对象的字节序列。...注: 简单地说明 Serializable 接口,就是可以将一个对象(标志对象的类型)及其状态转换为字节码,然后保存起来(可以保存在数据库,内存,文件等),即序列化过程;然后可以在适当的时候再将其状态恢复

67820
  • Android到Windows 8:使用文件

    从安卓平台到Win8:文件的处理 本文将介绍如何编写Win8中Windows Store里的应用代码,用于保存图像、文档等文件。...在应用中,文件可以保存到应用定义的位置或USB设备之类的外部存储设备中。 用户可能在使用编辑器类程序时想要保存当前正在处理的文档,并立刻重新打开它。...也可能用户在使用图像编辑程序时想将当前图片保存到USB设备中以便在电视上查看或在数码相框中使用。因此,你可以实现保存文件到应用定义位置或外部存储设备中的功能来帮助用户实现需求。...;FileOutputStream outputStream;​outputStream = openFileOutput(filename, Context.MODE_PRIVATE);outputStream.write...(string.getBytes());outputStream.close(); 记得把文件创建模式调整为MODE_PRIVATE,这样的话其他应用就无法访问这些文件了。

    1.5K80

    Using SVG

    为什么用SVG 压缩后文件体积小 可以无损伸缩到任意尺寸(除非尺寸特别小) 在retina屏幕上可以完美显示 设计可控,比如交互和滤镜 怎么生成SVG 可以在Adobe Illustrator里设计并且得到...留意到画板刚好贴着设计主体的边缘,画布的大小在SVG里面的重要性和在PNG和JPG里面是一样的。 然后可以直接在Adobe Illustrator里面保存成SVG文件。 ?...的时候,就会打开文本编辑器,显示SVG的编码。 ? 在标签里面使用SVG 如果把SVG保存成文件之后,可以直接在标签里面使用。...使用内联(inline)SVG 在保存SVG的时候可以获取SVG的代码(也可以直接在文本编辑器里面打开SVG文件),直接把SVG的代码复制到HTML里面: HTML <!...: 164px; background-image: url(kiwi.png); } 这种情况下,如果想要用CSS控制SVG,就不能用外部的样式或者文档里面的了,要用SVG文件内部的

    2.4K20

    别大意,你可能还没掌握好Java IO

    大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚!死鬼~看完记得给我来个三连哦! ?...使用普通组合相当于是缓冲区的 4 倍之久,如果文件更大的话,这个差异可是惊人的!惊讶的同时肯定也有所诧异,这是为什么呢?...BufferedInputStream/BufferedOutputStream不直接操作数据源,而是对其他字节流进行包装,它们是 处理流。...程序把数据保存到 BufferedOutputStream 缓冲区中,并没有立即保存到文件里,缓冲区中的数组在以下情况会保存到文件中: 缓冲区已满 flush() 清空缓冲区 close() 关闭流 FilterOutputStream...我们这边只截取了构造函数的一部分,毕竟只截重点就行~ 观察构造器可以发现,这里定义了四种模式: r 以只读的方式打开文本,也就意味着不能用write来操作文件 rw 读操作和写操作都是允许的 rws 每当进行写操作

    45110

    (57) 二进制文件和字节流 计算机程序的思维逻辑

    能够重复读取不代表能够回到任意的标记位置,mark方法有一个参数readLimit,表示在设置了标记后,能够继续往后读的最多字节数,如果超过了,标记会无效。为什么会这样呢?...因为之所以能够重读,是因为流能够将从标记位置开始的字节保存起来,而保存消耗的内存不能无限大,流只保证不会小于readLimit。...=-1){ off += bytesRead; } String data = new String(buf, 0, off, "UTF-8"); 不过,这还是假定文件内容长度不超过一个固定的大小...如果不确定文件内容的长度,不希望一次性分配过大的byte数组,又希望将文件内容全部读入,怎么做呢?可以借助ByteArrayOutputStream。...为什么要将byte数组转换为InputStream呢?

    1.4K100

    HTML5新特性

    stepMismatch:false, // 正则表达式不匹配 patternMismatch:false, // 是否存在自定义错误 customError:false, //...(游戏中从存盘) (4). ctx.restore() 恢复画笔变形状态到最近的一次保存(游戏中读取存盘) 20....SVG图形的样式可以用元素属性声明,也可以用CSS形式来声明,但用CSS声明时,只能使用SVG专用的样式,不能使用CSS样式,如边框设置只能用stroke,而不用border! (3)....一般情况下,网页只能显示服务器上的图片,HTML5中,可以实现用户拖拽一张本地的图片显示在服务器端下载的网页中 HTML中提供的用于文件输入输出(I/O)对象: File:代表一个文件/目录对象 FileList...:代表一个文件列表(类数组对象) FileReader:用于从文件中读取内容 FileWriter:用于向向文件写出内容 核心代码: container.ondrop = function(e){

    7.7K30

    Java基础-IO流

    PrintWriter的方法也不抛出IOException 复制文件时可以使用PrintWriter代替BufferedWriter完成,更简单 缓冲字节流 DataInputStream和DataOutputStream...对象序列化 对象序列化 (Serialization) 将Java对象转换成字节序列(IO字节流) 对象反序列化 (DeSerialization) 从字节序列中恢复Java对象 为什么序列化 序列化以后的对象可以保存到磁盘上...序列化能保存的元素 只能保存对象的非静态成员变量 不能保存任何成员方法和静态的成员变量 不保存transient成员变量 如果一个对象的成员变量是一个对象,这个对象的成员变量也会保存 串行化保存的只是变量的值...,对于变量的任何修饰符,都不能保存 使用对象流把一个对象写到文件时不仅保证该对象是序列化的,而且该对象的成员 对象也必须是可序列化的。...同一个对象多次序列化的处理 所有保存到磁盘中的对象都有一个序列化编号 序列化一个对象中,首先检查该对象是否已经序列化过 如果没有,进行序列化 如果已经序列化,将不再重新序列化,而是输出编号即可 如果不希望某些属性

    69220

    适用于Power BI的省市区县SVG地图资源

    为什么要在Power BI中使用SVG地图?因为这种类型的地图是目前在Power BI中显示数据标签最为便捷的地图形式。 偶然间发现一个很好的SVG地图资源,省市区县层级均有,并且非常精细。...---- 打开 https://axhub.im/maps/ 不选择任何省份,默认是全国地图,选择一个省份,是省到市地图,选择区县则再次细分。...省-市 市-区县 最小的层级是单个区/县: 选择需要的地图后,点击下方的“复制到Axure”,地图代码会到剪贴板,用记事本打开一个空白的SVG格式文件,将代码粘贴进去并保存即可。...INKSCAPE界面 下图是修改后的SVG代码,ID全部统一为拼音: 更改完成后,就可以将SVG地图使用Synoptic Panel这样的自定义图表导入Power BI使用了,此文展现了该图表的设置方法...地图相关常用的资源再次罗列如下: SVG地图省市区县 https://axhub.im/maps/ SVG世界各国/地区地图 https://www.amcharts.com/svg-maps/ 在线制作像素

    4.7K20

    带你了解Java的序列化(Serializable)与反序列化

    目录 1.为什么要进行Java序列化 2.Java中的序列化如何工作 2-1.什么是serialVersionUID常数 2-2.什么是瞬时变量?...因为序列化后可以把byte[]保存到文件中,或者把byte[]通过网络传输到远程(IO),这样,就相当于把Java对象存储到文件或者通过网络传输出去了。...有了反序列化,保存到文件中的byte[]数组又可以“变回”Java对象,或者从网络上读取byte[]并把它“变回”Java对象。...以下是一些使用序列化的示例: -以面向对象的方式将数据存储到磁盘上的文件,例如,Redis存储Student对象的列表。 -将程序的状态保存在磁盘上,例如,保存游戏状态。...可序列化 是一个标记接口(不包含任何方法),该接口告诉Java虚拟机(JVM)该类的对象已准备好写入持久性存储或通过网络进行读取。 默认情况下,JVM负责编写和读取可序列化对象的过程。

    2.2K30

    java基础(十):IO技术流

    一个File对象可以代表一个文件或目录 可以实现获取文件和目录属性等功能 可以实现对文件和目录的创建、删除等功能 File不访问文件内容 流的原理 在Java程序中,对于数据的输入/输出操作以“流” (...PrintWriter的方法也不抛出IOException 复制文件时可以使用PrintWriter代替BufferedWriter完成,更简单 字节/字符数组/字符串流 ByteArrayInputStream...只能保存对象的非静态成员变量 不能保存任何成员方法和静态的成员变量 不保存transient成员变量 如果一个对象的成员变量是一个对象,这个对象的成员变量也会保存 串行化保存的只是变量的值,对于变量的任何修饰符...,都不能保存 使用对象流把一个对象写到文件时不仅保证该对象是序列化的,而且该对象的成员对象也必须是可序列化的。...同一个对象多次序列化的处理 所有保存到磁盘中的对象都有一个序列化编号 序列化一个对象中,首先检查该对象是否已经序列化过 如果没有,进行序列化 如果已经序列化,将不再重新序列化,而是输出编号即可 如果不希望某些属性

    71120

    java.io.outputstream_java input

    : FileOutputStream outputStream = new FileOutputStream("a.txt"); 创建字节输出流对象了做了几件事情: A:调用系统功能去创建文件 B:创建...outputStream对象 C:把foutputStream对象指向这个文件 通过字节输出流写出数据到文本 public void write(int b) public void write(byte...两种读取方式图解: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yv0oyKLy-1603813798619)(http://p5kllyq5h.bkt.clouddn.com...为什么不传递一个具体的文件或者文件路径,而是传递一个OutputStream对象呢?原因很简单,字节缓冲区流仅仅提供缓冲区,为高效而设计的。但是呢,真正的读写操作还得靠基本的流对象实现。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    37520

    【Web动画】SVG 实现复杂线条动画

    好,到了 PS 中的最后一步,点击文件选项,导出路径到 illustrator ,看图,照着操作就好: ?...在 illustrator 中生成 SVG 文件 打开 AI ,打开刚刚用 PS 导出的 *.ai 文件。 没有 AI ?...OK,接下来就是调整画布大小,最好是路径左上角和画布左上角对齐,然后选中存储为 SVG 文件。 ?...好,其实 AI 也没做什么,路径是使用 PS 生成的,为什么不直接用 PS 生成 *.svg 文件呢?因为我用的版本 PS 还没支持直接存储为 SVG 格式。...获取 SVG 的 path 路径 OK,最后把刚刚保存的 *.svg 路径的文件用浏览器打开,一片空白是正常的,右键查看网页源代码: ? 大功告成,这里面, 路径就是我们需要的路径了! ?

    1.9K50

    Android微信上的SVG

    矢量图SVG 栅格图自身特点导致了高清资源同安装包体积之间的矛盾。这方面矢量图存在明显的优势,它可以在表达清晰图片的同时,不增加文件体积。...但通过在加载阶段的大幅提升,让SVG在整体耗时上赢了PNG。 为什么我们可以将“加载”和“渲染”相加在一起来比较? 事实上,SVG渲染过程使用了Picture进行绘制。...意料之中的,使用的这种SVGProtoc的中间格式保存下来的文件,比xml小了非常多,甚至比之后的其他方案得到的体积都要小。...资源框架 资源框架力图解决SVG对于开发者便捷开发的使用问题上,我们遵循无感知的设计目标,替换SVG图片而不增加开发者的开发成本,甚至不会感知到WeChatSVGCode这种特殊实现方式的存在。...(这也是我们为什么要预加载的一个原因) 代码如下: ? 通过这样的手段我们实现了资源的拦截。

    2.8K50

    poiAndEasyExcel学习(三)

    大文件 大文件写HSSF 缺点:最多只能处理65536行,否则会抛出异常 java.lang.IllegalArgumentException: Invalid row number (65536) outside...allowable range (0..65535) 优点:过程中写入缓存,不操作磁盘,最后一次性写入磁盘,速度快 耗时:2.117 @Test public void testWrite03BigData...SXSSF 优点:可以写非常大的数据量,如100万条甚至更多条,写数据速度快,占用更少的内存 注意: 过程中会产生临时文件,需要清理临时文件 默认由100条记录被保存在内存中,如果超过这数量,则最前面的数据被写入临时文件...(); // 清除临时文件!...这允许写入非常大的文件而不会耗尽内存,因为任何时候只有可配置的行部分被保存在内存中。

    37520

    java基础io流——OutputStream和InputStream的故事(温故知新)

    :  FileOutputStream outputStream = new FileOutputStream("a.txt"); 创建字节输出流对象了做了几件事情:  A:调用系统功能去创建文件 B:...创建outputStream对象 C:把foutputStream对象指向这个文件 通过字节输出流写出数据到文本  public void write(int b) public void write(...             * B:创建outputStream对象              * C:把foutputStream对象指向这个文件              */ //           ...两种读取方式图解:  [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yv0oyKLy-1603813798619)(http://p5kllyq5h.bkt.clouddn.com...为什么不传递一个具体的文件或者文件路径,而是传递一个OutputStream对象呢?原因很简单,字节缓冲区流仅仅提供缓冲区,为高效而设计的。但是呢,真正的读写操作还得靠基本的流对象实现。

    64540

    Java各种IO流

    前言不知道大家有没有疑惑过一个问题,在我们打电话的时候为什么对着电话说话,声音就会出现在电话的另一头。原理就是声音转变成数字信号,再通过一个一个基站,传递到对方手机,再将数字信号转成声音。...那我们文件又是怎么从我们本地上传到服务器,别人又是怎么从服务器将文件下载下来的呢。其实这就要多亏我们的“流”,正如他的名字一样,当上传或下载文件时,文件会成“流”,最后流又组成了完整的文件。...IO流的类型Java中有关IO的类一共都有40多个,但所有类都是基于以下4个类InputStream/OutputStream: 分别为字节流中输入流和输出流的基类。...字符流有了字节流,我们为什么还需要字符流呢?字节流主要处理文件类型以二进制方式存储的文件,如图片,视频等就只能用字节流来处理,而字符流主要用于以Unicode字符存储的数据流。...如果文件是以字符存在的话我们使用字符流就会比字节流方便,比如如果一个文件以中文的形式保存的,我们使用字节流就会出现乱码问题,还需要手动指定编码格式。

    10310

    Java IO

    Jdk提供的流继承了四大类: InputStream(字节输入流),OutputStream(字节输出流): 主要用来表示 二进制文件(图片、视频、音频、文本文件) Reader(字符输入流),Writer...Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。...1一个字节表示的数据就用1个字节来表示 * 能用2个字节来表示的数据就用2个字节来表示 */ String s="李翎野...System.out.println(s1); System.out.println(s2); System.out.println(s3); } } 实例6:转换流 问题:为什么需要转换流...java.util.Properties),是代表一个持久的一套详细属性, 实现集合与 IO 进行交互 特点: 1: 它是一个 Map 集合, 是 Hashtable 的子类 2: 键和值 都是 String 类型 属性可以被保存到一个流或从流中加载的类

    29220
    领券