如题
因为要发彩信,发送的时候将指定目录下所有的文件,包括图片和文本文件中的内容读取出来,保存在 byte[] 中,然后发送出来
这个应该怎么做因为发送彩信的包中,指定了内容要用 byte[] 来发送的

解决方案 »

  1.   

    一段参考代码,文件读取的操作你自己完成吧!
    package test;import java.io.File;
    import java.io.IOException;public class PassS {  public static void main(String[] args) throws IOException {
        PassS p = new PassS();
        p.read("\\user\\123\\1");
      }  public void read(String filepath) throws IOException {
        File f = new File(filepath);// 定义文件路径
        if (f.exists() && f.isDirectory()) {// 判断是文件还是目录
          if (f.listFiles().length == 0) {// 若目录下没有文件则直接删除
            f.delete();
          } else {// 若有则把文件放进数组,并判断是否有下级目录
            File delFile[] = f.listFiles();
            int i = f.listFiles().length;
            for (int j = 0; j < i; j++) {
              if (delFile[j].isDirectory()) {            read(delFile[j].getAbsolutePath());// 递归调用del方法并取得子目录路径
              }
              ///// 这里写你的读文件的操作
              
              ///
            }
          }
          read(filepath);// 递归调用
        }  }}
      

  2.   

    参考API就能写出来了。建议看看java.io包下的类
      

  3.   

    我主要的困惑不是读取文件,而是如何在循环中将指定文件夹下的文件内容放在一个 byte[] 中
      

  4.   

    读取到的文件内容string格式,getBytes一下不就行了?
      

  5.   

    图片怎么用STRING?不一定只有文件文件的,还有图片文件,就是发送手机报的那种彩信
      

  6.   

    import java.io.BufferedInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    public class FolderContent {
    /**
     * 获得文件内容
     * @param fileName
     * @return
     * @throws Exception
     */
    public static byte[] getFileContent(String fileName) throws Exception{
    File file = new File(fileName);
    if( file.exists() ){
    InputStream is = new BufferedInputStream(new FileInputStream(file));
    byte[] b = new byte[1024];
    int len = -1;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    while ( (len = is.read(b, 0, b.length)) != -1) {
    baos.write(b, 0, len);
    }
    baos.flush();
    is.close();

    return baos.toByteArray();
    }

    return null;
    }

    private int getFileContent(ByteArrayOutputStream baos,File file) throws Exception{
    InputStream is = new BufferedInputStream(new FileInputStream(file));
    byte[] b = new byte[1024];
    int len = -1,fileLen = 0;
    while ( (len = is.read(b, 0, b.length)) != -1) {
    baos.write(b, 0, len);
    fileLen += len;
    }
    baos.flush();
    is.close();

    return fileLen;
    }

    public byte[] getFolderContent(String folderName) throws Exception{
    File folder = new File(folderName);
    if( !folder.exists() ){
    throw new Exception("文件不存在。");
    }
    if( !folder.isDirectory() ){
    throw new Exception("文件不是目录。");
    }

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    File[] files = folder.listFiles();
    for( int i=0; i<files.length; i++ ){
    if(!files[i].isDirectory()){
    int fileLen = this.getFileContent(baos, files[i]);
    System.out.println("加载了文件:"+files[i].getAbsolutePath()+"的数据,长度:"+fileLen);
    }
    }

    return baos.toByteArray();
    }

    public static void main(String[] args) throws Exception{
    FolderContent content = new FolderContent();
    byte[] data = content.getFolderContent("d:/");
    System.out.println(data.length);
    }
    }