php怎样将二进制流存到文件中?

php怎样将二进制流存到文件中?,第1张

整形转化成 2二进制 可以用  base_convert:

$str = 0x8000

 

echo $str2 = base_convert($str, 16, 2)

echo '<br>'

echo base_convert($str2, 2, 16)

[code]

 

字符串 文件等 可以考虑用 pack 和 unpack 转化成二进制

 

[code=PHP]

$file1 = 'F:/46.gif'           //随便拷一个图片作为测试用

$file2 = 'F:/test.txt'         //生成的二进制流保存在这个文件里

$file3 = 'F:/47.gif'           //由二进制流还原成的文件

 

$size = filesize($file1)

 

echo '文件大小为:'.$size

echo "\n<br>转化为二进制 ..."

 

$content = file_get_contents($file1)

$content = bstr2bin($content)

 

 

$fp = fopen($file2, 'w')

fwrite($fp, $content)

fclose($fp)

 

$size2 = filesize($file2)

 

echo '转化成二进制后文件大小为:'.$size2

 

$content = bin2bstr($content)

 

$fp = fopen($file3, 'w')

fwrite($fp, $content)

fclose($fp)

 

 

function bin2bstr($input)

// Convert a binary expression (e.g., "100111") into a binary-string

{

  if (!is_string($input)) return null // Sanity check

 

  // Pack into a string

  $input = str_split($input, 4)

  $str = ''

  foreach ($input as $v)

  {

      $str .= base_convert($v, 2, 16)

  }

   

  $str =  pack('H*', $str)

   

  return $str

}

 

function bstr2bin($input)

// Binary representation of a binary-string

{

  if (!is_string($input)) return null // Sanity check

 

  // Unpack as a hexadecimal string

  $value = unpack('H*', $input)

   

  // Output binary representation

  $value = str_split($value[1], 1)

  $bin = ''

  foreach ($value as $v)

  {

      $b = str_pad(base_convert($v, 16, 2), 4, '0', STR_PAD_LEFT)

       

      $bin .= $b

  }

   

  return $bin

}

1、首先打开C++的编译器,可以选择Visual Studio、Code::Blocks或者Dev-C++等编译器软件,这里是以Visual Studio 2017为例;

2、然后就要创建一个新的解决方案,然后新建一个项目,选择Windows控制台应用程序,然后给新项目取一个名称,可自行定义;

3、确保项目名称无误后,点击确定按钮,即可看到我们已经成功创建了一个项目,然后添加一个新的cpp文件;

4、在代码头部包含入我们需要的头文件,这里因为是C++所以需要包含输入输出流iostream、文件流fstream以及默认的命名空间std;

5、在主函数首先用ofstream从内存到硬盘的流 *** 作创建一个out对象,然后在参数中传入待输出文件的文件名,然后使用out输出带输出的字符序列;

6、然后为了检查我们的输入结果是正确的,点击运行按钮,稍等片刻,即可看到在当前的源代码文件夹中多了一个“output.txt”。

public class FileTest {

public static void main(String[] args) {

File file=new File("c:\\test.txt")

BufferedReader read=null

BufferedWriter writer=null

try {

writer=new BufferedWriter(new FileWriter("c:\\zwm.txt"))

} catch (IOException e1) {

e1.printStackTrace()

}

try {

read=new BufferedReader(new FileReader(file))

String tempString = null

while((tempString=read.readLine())!=null){

writer.append(tempString)

writer.newLine()//换行

writer.flush()//需要及时清掉流的缓冲区,万一文件过大就有可能无法写入了

}

read.close()

writer.close()

System.out.println("文件写入完成...")

} catch (IOException e) {

e.printStackTrace()

}

}

}

这个例子是将一个文件的东西,写入到另一个文件里面去。

你可以把你读取到的流用Out流写到你的文件里


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11845507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存