c,c++,java,python,ruby实现将文件读入数组的,pythonruby,c实现读取文件转为字节数
分享于 点击 47521 次 点评:145
c,c++,java,python,ruby实现将文件读入数组的,pythonruby,c实现读取文件转为字节数
c实现读取文件转为字节数组
#include <stdio.h>#include <stdlib.h>char* readFileBytes(const char *name){ FILE *fl = fopen(name, "r"); fseek(fl, 0, SEEK_END); long len = ftell(fl); char *ret = malloc(len); fseek(fl, 0, SEEK_SET); fread(ret, 1, len, fl); fclose(fl); return ret;}
C++实现
#include <iostream>#include <fstream>char* readFileBytes(const char *name){ ifstream fl(name); fl.seekg( 0, ios::end ); size_t len = fl.tellg(); char *ret = new char[len]; fl.seekg(0, ios::beg); fl.read(ret, len); fl.close(); return ret;}
C#实现读取文件转换为数组
var bytes = System.IO.File.ReadAllBytes(name);
Java实现将读取文件转换为字节数组
// Returns the contents of the file in a byte array.public static byte[] getBytesFromFile(File file) throws IOException { InputStream is = new FileInputStream(file); byte[] bytes; try { // Get the size of the file long length = file.length(); // You cannot create an array using a long type. // It needs to be an int type. // Before converting to an int type, check // to ensure that file is not larger than Integer.MAX_VALUE. if (length > Integer.MAX_VALUE) { // File is too large (>2GB) } // Create the byte array to hold the data bytes = new byte[(int)length]; // Read in the bytes int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) { offset += numRead; } // Ensure all the bytes have been read in if (offset < bytes.length) { throw new IOException("Could not completely read file " + file.getName()); } } finally { // Close the input stream and return bytes is.close(); } return bytes;}
Perl实现读取文件
use File::Slurp (read_file);my $slurped = read_file('filename');
Python实现读取文件
Python 2.x's "str" type acts as an (immutable) byte array (not a true chararray), so the following suffices:
def get_bytes_from_file(filename): return open(filename, "rb").read()
Ruby 实现读取文件
Since String objects 'hold and manipulate an arbitrary sequence of bytes'(Source), simply readinga file into a String will suffice.
def get_bytes_from_file(filename) File.read(filename)end
用户点评