<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[isBinaryFile——模具行业从业者必备知识手册]]></title><description><![CDATA[<p dir="auto">&lt;h2&gt;isBinaryFile&lt;/h2&gt;</p>
<p dir="auto">&lt;p&gt;Detects if a file is binary in Node.js using <img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/2728.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--sparkles" title=":sparkles:" alt="✨" />promises<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/2728.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--sparkles" title=":sparkles:" alt="✨" />. Similar to &lt;a href="<a href="http://stackoverflow.com/questions/899206/how-does-perl-know-a-file-is-binary" rel="nofollow ugc">http://stackoverflow.com/questions/899206/how-does-perl-know-a-file-is-binary</a>"&gt;Perl's &lt;code&gt;-B&lt;/code&gt; switch&lt;/a&gt;, in that:&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;it reads the first few thousand bytes of a file&lt;/li&gt;<br />
&lt;li&gt;checks for a &lt;code&gt;null&lt;/code&gt; byte; if it's found, it's binary&lt;/li&gt;<br />
&lt;li&gt;flags non-ASCII characters. After a certain number of "weird" characters, the file is flagged as binary&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;p&gt;Much of the logic is pretty much ported from &lt;a href="<a href="https://github.com/ggreer/the_silver_searcher" rel="nofollow ugc">https://github.com/ggreer/the_silver_searcher</a>"&gt;ag&lt;/a&gt;.&lt;/p&gt;</p>
<p dir="auto">&lt;p&gt;Note: if the file doesn't exist or is a directory, an error is thrown.&lt;/p&gt;</p>
<p dir="auto">&lt;h3&gt;Installation&lt;/h3&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
npm install isbinaryfile<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h3&gt;Usage&lt;/h3&gt;</p>
<p dir="auto">&lt;p&gt;Returns &lt;code&gt;Promise&lt;boolean&gt;&lt;/code&gt; (or just &lt;code&gt;boolean&lt;/code&gt; for &lt;code&gt;*Sync&lt;/code&gt;). &lt;code&gt;true&lt;/code&gt; if the file is binary, &lt;code&gt;false&lt;/code&gt; otherwise.&lt;/p&gt;</p>
<p dir="auto">&lt;h4&gt;isBinaryFile(filepath)&lt;/h4&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;&lt;code&gt;filepath&lt;/code&gt; -  a &lt;code&gt;string&lt;/code&gt; indicating the path to the file.&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;h4&gt;isBinaryFile(bytes[, size])&lt;/h4&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt; - a &lt;code&gt;Buffer&lt;/code&gt; of the file's contents.&lt;/li&gt;<br />
&lt;li&gt;&lt;code&gt;size&lt;/code&gt; - an optional &lt;code&gt;number&lt;/code&gt; indicating the file size.&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;h4&gt;isBinaryFileSync(filepath)&lt;/h4&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;&lt;code&gt;filepath&lt;/code&gt; - a &lt;code&gt;string&lt;/code&gt; indicating the path to the file.&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;h4&gt;isBinaryFileSync(bytes[, size])&lt;/h4&gt;</p>
<p dir="auto">&lt;ul&gt;<br />
&lt;li&gt;&lt;code&gt;bytes&lt;/code&gt; - a &lt;code&gt;Buffer&lt;/code&gt; of the file's contents.&lt;/li&gt;<br />
&lt;li&gt;&lt;code&gt;size&lt;/code&gt; - an optional &lt;code&gt;number&lt;/code&gt; indicating the file size.&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;h4&gt;Examples&lt;/h4&gt;</p>
<p dir="auto">&lt;p&gt;Here's an arbitrary usage:&lt;/p&gt;</p>
<p dir="auto">&lt;pre&gt;&lt;code&gt;<br />
const isBinaryFile = require("isbinaryfile").isBinaryFile;<br />
const fs = require("fs");</p>
<p dir="auto">const filename = "fixtures/pdf.pdf";<br />
const data = fs.readFileSync(filename);<br />
const stat = fs.lstatSync(filename);</p>
<p dir="auto">isBinaryFile(data, stat.size).then((result) =&gt; {<br />
if (result) {<br />
console.log("It is binary!")<br />
}<br />
else {<br />
console.log("No it is not.")<br />
}<br />
});</p>
<p dir="auto">const isBinaryFileSync = require("isbinaryfile").isBinaryFileSync;<br />
const bytes = fs.readFileSync(filename);<br />
const size = fs.lstatSync(filename).size;<br />
console.log(isBinaryFileSync(bytes, size)); // true or false<br />
&lt;/code&gt;&lt;/pre&gt;</p>
<p dir="auto">&lt;h3&gt;Testing&lt;/h3&gt;</p>
<p dir="auto">&lt;p&gt;Run &lt;code&gt;npm install&lt;/code&gt;, then run &lt;code&gt;npm test&lt;/code&gt;.&lt;/p&gt;</p>
<p dir="auto">&lt;hr&gt;</p>
<p dir="auto">&lt;p&gt;本文由模极社发布&lt;/p&gt;</p>
<p dir="auto">&lt;hr&gt;<br />
&lt;h4&gt;<img src="https://forum.mj7.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f517.png?v=k0o2a4s5i30" class="not-responsive emoji emoji-android emoji--link" title=":link:" alt="🔗" /> 你可能还感兴趣&lt;/h4&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="/t/3149/3149"&gt;PEEK聚醚醚酮&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="/t/3681/3681"&gt;广州国际模具展览会（Asiamold Select 2026）&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="/t/4812/4812"&gt;东莞横沥镇模具产业 — 模具制造专业镇&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;hr&gt;<br />
&lt;p&gt;&lt;strong&gt;相关推荐：&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="<a href="https://www.mj7.cn/t/4836-4836" rel="nofollow ugc">https://www.mj7.cn/t/4836-4836</a>"&gt;北京模具产业 — 科技研发驱动型模具基地&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="<a href="https://www.mj7.cn/t/4835-4835" rel="nofollow ugc">https://www.mj7.cn/t/4835-4835</a>"&gt;上海模具产业 — 高端精密模具研发中心&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="<a href="https://www.mj7.cn/t/4834-4834" rel="nofollow ugc">https://www.mj7.cn/t/4834-4834</a>"&gt;产业集群与模具产业发展的关系&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p dir="auto">&lt;hr&gt;<br />
&lt;p&gt;哪个方案更实用？欢迎投票讨论。&lt;/p&gt;</p>
]]></description><link>https://forum.mj7.cn/topic/7215/isbinaryfile-模具行业从业者必备知识手册</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 09:34:51 GMT</lastBuildDate><atom:link href="https://forum.mj7.cn/topic/7215.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Apr 2026 22:00:10 GMT</pubDate><ttl>60</ttl></channel></rss>