使用java.io.*操作文件的拆分与合并,Application一例!

该博客展示了一个Java编写的应用程序,实现文件拆分与合并功能。通过导入多个Java库,创建图形用户界面,用户可选择文件,设置拆分数目和单文件大小进行拆分,也能选择首文件进行合并,同时对输入框输入进行限制,还解决了中文显示问题。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.swing.text.*;
import javax.swing.event.*;

public class Application1 extends JFrame {
String filepath="";
JLabel splitSourceSize,coalitionTotalSize,coalitionTotalCount;
JTextField SplitSource,SplitTotalCount,SplitEachSize,coalitionSource;
//*****************************************申明结束
public Application1() {
super("工具");
this.setSize(640,480);
this.setLocation(this.getToolkit().getScreenSize().width/2-this.getWidth()/2,this.getToolkit().getScreenSize().height/2-this.getHeight()/2);
JPanel contentPanel=(JPanel)this.getContentPane();
contentPanel.setLayout(new BorderLayout());
JTabbedPane jtp=new JTabbedPane();
jtp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
JPanel splitPane=new JPanel(new GridLayout(5,1));
JPanel splitPane0=new JPanel(new BorderLayout());
splitPane0.add(splitPane,BorderLayout.NORTH);
JPanel splitPane1=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel splitPane2=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel splitPane3=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel splitPane4=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel splitPane5=new JPanel();
splitPane1.add(new JLabel("拆分源文件:"));
SplitSource=new JTextField(40);
splitPane1.add(SplitSource);
JButton SplitJButton=new JButton("浏览...");
SplitJButton.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    SplitJButtonClick(e);//选择要拆分的文件
  }
});
splitPane1.add(SplitJButton);
splitSourceSize=new JLabel("源文件大小:");
splitPane2.add(splitSourceSize);
splitPane3.add(new JLabel("拆分的数目:"));
SplitTotalCount=new JTextField(15);
SplitTotalCount.setDocument(new NumberDocument());//限制输入框只能输入数字
SplitTotalCount.getDocument().addDocumentListener(new DocumentListener() {//给输入框添加事件
  public void changedUpdate(DocumentEvent e) {
    if(!Application1.this.SplitTotalCount.isFocusOwner())return;
    try{SplitTotalCount_changedUpdate(e);}catch(Exception ex){System.err.println(ex.toString());}
  }
  public void insertUpdate(DocumentEvent e) {
    if(!Application1.this.SplitTotalCount.isFocusOwner())return;
    try{SplitTotalCount_changedUpdate(e);}catch(Exception ex){System.err.println(ex.toString());}
  }
  public void removeUpdate(DocumentEvent e) {
    if(!Application1.this.SplitTotalCount.isFocusOwner())return;
    try{SplitTotalCount_changedUpdate(e);}catch(Exception ex){System.err.println(ex.toString());}
  }
});
splitPane3.add(SplitTotalCount);
splitPane4.add(new JLabel("单文件大小:"));
SplitEachSize=new JTextField(15);
SplitEachSize.setDocument(new NumberDocument());//限制输入框只能输入数字
SplitEachSize.getDocument().addDocumentListener(new DocumentListener() {//给输入框添加事件
  public void changedUpdate(DocumentEvent e) {
    if(!Application1.this.SplitEachSize.isFocusOwner())return;
    try{SplitEachSize_changedUpdate(e);}catch(Exception ex){System.err.println(ex.toString());}
  }
  public void insertUpdate(DocumentEvent e) {
    if(!Application1.this.SplitEachSize.isFocusOwner())return;
    try{SplitEachSize_changedUpdate(e);}catch(Exception ex){System.err.println(ex.toString());}
  }
  public void removeUpdate(DocumentEvent e) {
    if(!Application1.this.SplitEachSize.isFocusOwner())return;
    try{SplitEachSize_changedUpdate(e);}catch(Exception ex){System.err.println(ex.toString());}
  }
});
splitPane4.add(SplitEachSize);
JButton SplitJB=new JButton("开始拆分");
SplitJB.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    try{SplitJBClick(e);}catch(Exception ex){System.err.println(ex.toString());}//拆分文件
  }
});
splitPane5.add(SplitJB);
splitPane.add(splitPane1);
splitPane.add(splitPane2);
splitPane.add(splitPane3);
splitPane.add(splitPane4);
splitPane.add(splitPane5);
JPanel coalitionPane0=new JPanel(new BorderLayout());
JPanel coalitionPane=new JPanel(new GridLayout(4,1));
coalitionPane0.add(coalitionPane,BorderLayout.NORTH);
JPanel coalitionPane1=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel coalitionPane2=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel coalitionPane3=new JPanel(new FlowLayout(FlowLayout.LEADING));
JPanel coalitionPane4=new JPanel();
coalitionPane1.add(new JLabel("合并首文件:"));
coalitionSource=new JTextField(40);
coalitionPane1.add(coalitionSource);
JButton coalitionJButton=new JButton("浏览(*.000)");
coalitionJButton.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    coalitionJButtonClick(e);//选择要合并的首文件
  }
});
coalitionPane1.add(coalitionJButton);
coalitionPane.add(coalitionPane1);
coalitionTotalSize=new JLabel("文件总大小:");
coalitionPane2.add(coalitionTotalSize);
coalitionPane.add(coalitionPane2);
coalitionTotalCount=new JLabel("文件总数目:");
coalitionPane3.add(coalitionTotalCount);
coalitionPane.add(coalitionPane3);
JButton coalitionJB=new JButton("开始合并");
coalitionJB.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    try{coalitionJBClick(e);}catch(Exception ex){System.err.println(ex.toString());}//合并文件
  }
});
coalitionPane4.add(coalitionJB);
coalitionPane.add(coalitionPane4);
jtp.add("拆分文件",splitPane0);
jtp.add("合并文件",coalitionPane0);
contentPanel.add(jtp,BorderLayout.CENTER);
this.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);//当关闭窗口时退出系统
      }
});
this.setVisible(true);
//********************************************以上为图形界面设计
}

private void SplitJBClick(ActionEvent e) throws Exception {//拆分文件操作
  File file=new File(this.SplitSource.getText());
  if(!file.exists()) {
    JOptionPane.showMessageDialog(this,"源文件不存在!","警告",JOptionPane.WARNING_MESSAGE);
    return;
  }
  javax.swing.JFileChooser fjc;
  fjc=new javax.swing.JFileChooser(filepath);
  fjc.removeChoosableFileFilter(fjc.getAcceptAllFileFilter());
  fjc.setDialogTitle("选择保存目录");
  fjc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  if(fjc.APPROVE_OPTION!=fjc.showOpenDialog(this))return;
  filepath=fjc.getSelectedFile().getPath();
  byte[] b=new byte[1024];
  int read=0;
  String splitfilename=file.getName();
  int eachfilesize=Integer.parseInt(this.SplitEachSize.getText());
  FileInputStream fis=new FileInputStream(file);
  FileOutputStream fos;
  String savesplitfilename="";
  for(long splitcount=0;splitcount<Long.parseLong(this.SplitTotalCount.getText());splitcount++) {
    savesplitfilename=fjc.getSelectedFile()+"/"+splitfilename+".xiruo.";
    if(String.valueOf(splitcount).length()==1)
      savesplitfilename+="00"+splitcount;
    else if(String.valueOf(splitcount).length()==2)
      savesplitfilename+="0"+splitcount;
    else
      savesplitfilename+=splitcount;
    fos=new FileOutputStream(savesplitfilename);
    int eachread=b.length;
    int hasread=0;
    while((read=fis.read(b,0,eachread))>0) {
      fos.write(b,0,read);
      fos.flush();
      hasread+=read;
      if(hasread>=eachfilesize&&splitcount!=Long.parseLong(this.SplitTotalCount.getText())-1)
        break;
      if(eachfilesize-hasread<(long)b.length)
        eachread=eachfilesize-hasread;
    }
    fos.close();
  }
  fos=null;
  JOptionPane.showMessageDialog(this,"拆分完成");
}

private void coalitionJBClick(ActionEvent e) throws Exception {//合并文件操作
  File file=new File(this.coalitionSource.getText());
  if(!file.exists()) {
    JOptionPane.showMessageDialog(this,"源文件不存在!","警告",JOptionPane.WARNING_MESSAGE);
    return;
  }
  javax.swing.JFileChooser fjc;
  fjc=new javax.swing.JFileChooser(filepath);
  fjc.setDialogTitle("选择保存目录");
  fjc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  if(fjc.APPROVE_OPTION!=fjc.showOpenDialog(this))return;
  filepath=fjc.getSelectedFile().getPath();
  String selfilename=file.getName();
  selfilename=selfilename.substring(0,selfilename.lastIndexOf("."));
  String savefile=fjc.getSelectedFile().getAbsolutePath()+"/"+selfilename.substring(0,selfilename.lastIndexOf("."));
  if(new File(savefile).exists()) {
    int javaok=JOptionPane.showConfirmDialog(this,"文件名 "+new File(savefile).getName()+" 的文件已经存在,你要覆盖原来的文件吗?","警告!",JOptionPane.OK_CANCEL_OPTION);
      if(javaok==JOptionPane.CANCEL_OPTION)return;
  }
  byte[] b=new byte[1024];
  int read=0;
  FileOutputStream fos=new FileOutputStream(savefile);
  FileInputStream fis;
  File[] f=file.getParentFile().listFiles();
  for(int i=0;i<f.length;i++) {
    if(!f[i].getName().startsWith(selfilename))continue;
    fis=new FileInputStream(f[i]);
    while((read=fis.read(b,0,b.length))>0) {
      fos.write(b, 0, read);
      fos.flush();
    }
    fis.close();
  }
  fos.close();
  fos=null;
  fis=null;
  JOptionPane.showMessageDialog(this,"合并完成");
}

private void SplitTotalCount_changedUpdate(DocumentEvent e) throws Exception {
  File file=new File(this.SplitSource.getText());
  if(!file.exists()||this.SplitTotalCount.getText().equals(""))return;
  long l=Long.parseLong(this.SplitTotalCount.getText());
  if(l<=0)return;
  this.SplitEachSize.setText(String.valueOf(file.length()/l));
}

private void SplitEachSize_changedUpdate(DocumentEvent e) throws Exception {
  File file=new File(this.SplitSource.getText());
  if(!file.exists()||this.SplitEachSize.getText().equals(""))return;
  double l=Double.parseDouble(this.SplitEachSize.getText());
  if(l<=0)return;
  this.SplitTotalCount.setText(fileCount((double)file.length(),l));
}

private void SplitJButtonClick(ActionEvent e) {//选择要拆分的源文件
  javax.swing.JFileChooser fjc;
  fjc=new javax.swing.JFileChooser(filepath);
  fjc.addChoosableFileFilter(new myFilter("*.jpg,*.gif","jpg,gif Files(*.jpg,*.gif)"));//文件过滤
  fjc.addChoosableFileFilter(new myFilter("*.rm,*.rmvb","real Files(*.rm,*.rmvb)"));//文件过滤
  fjc.addChoosableFileFilter(new myFilter("*.mpg,*.mpeg","mpg Files(*.mpg,*.mpeg)"));//文件过滤
  fjc.addChoosableFileFilter(fjc.getAcceptAllFileFilter());
  if(fjc.APPROVE_OPTION!=fjc.showOpenDialog(this))return;
  filepath=fjc.getSelectedFile().getPath();
  File file=fjc.getSelectedFile();
  double filesize=file.length();
  String size="";
  java.text.DecimalFormat df=new java.text.DecimalFormat("#.##");
  if(filesize>=1024d*1024d*0.8d)
    size=df.format(filesize/(1024d*1024d))+"MB";
  else if(filesize>=1024d*0.8d)
    size=df.format(filesize/1024d)+"KB";
  else
    size=filesize+"Bytes";
  this.splitSourceSize.setText("源文件大小: "+size);
  this.SplitSource.setText(file.getAbsolutePath());
  this.SplitTotalCount.setText(fileCount(filesize,102400));
  this.SplitEachSize.setText("102400");
}

private void coalitionJButtonClick(ActionEvent e) {//选择要合并的首文件
  javax.swing.JFileChooser fjc;
  fjc=new javax.swing.JFileChooser(filepath);
  fjc.removeChoosableFileFilter(fjc.getAcceptAllFileFilter());//移除默认的select All
  fjc.addChoosableFileFilter(new myFilter("*.xiruo.000","拆分首文件(*.xiruo.000)"));//文件过滤
  if(fjc.APPROVE_OPTION!=fjc.showOpenDialog(this))return;
  filepath=fjc.getSelectedFile().getPath();
  File file=fjc.getSelectedFile();
  String selfilename=file.getName();
  this.coalitionSource.setText(file.getAbsolutePath());
  selfilename=selfilename.substring(0,selfilename.lastIndexOf("."));
  File[] f=file.getParentFile().listFiles();
  double filesize=0;
  int filetotalcount= 0;
  for(int i=0;i<f.length;i++) {
    if(!f[i].getName().startsWith(selfilename))continue;
    filetotalcount++;
    filesize+=f[i].length();
  }
  String size="";
  java.text.DecimalFormat df=new java.text.DecimalFormat("#.##");
  if(filesize>=1024d*1024d*0.8d)
    size=df.format(filesize/(1024d*1024d))+"MB";
  else if(filesize>=1024d*0.8d)
    size=df.format(filesize/1024d)+"KB";
  else
    size=filesize+"Bytes";
  this.coalitionTotalSize.setText("文件总大小: "+size);
  this.coalitionTotalCount.setText("文件总数目: "+filetotalcount);
}

private String fileCount(double filesize,double eachsize) {
int i=(int)(filesize/eachsize)+(filesize%eachsize>0?1:0);
return String.valueOf(i);
}

public class NumberDocument extends PlainDocument {//对文本框的输入进行输入限制,构造PlainDocument实现
  public void insertString(int offs, String str, AttributeSet a)
  throws BadLocationException {
    char[] source = str.toCharArray();
    char[] result = new char[source.length];
    int j = 0;
    for (int i = 0; i < result.length; i++) {
      if (Character.isDigit(source[i]))
        result[j++] = source[i];
    }
    super.insertString(offs, new String(result, 0, j), a);
  }
}
public static void main(String args[]) throws Exception {
  Font font=new Font("宋体",Font.PLAIN,15);
  UIManager.put("Button.font",font);
  UIManager.put("ToggleButton.font",font);
  UIManager.put("RadioButton.font",font);
  UIManager.put("CheckBox.font",font);
  UIManager.put("ColorChooser.font",font);
  UIManager.put("ToggleButton.font",font);
  UIManager.put("ComboBox.font",font);
  UIManager.put("ComboBoxItem.font",font);
  UIManager.put("InternalFrame.titleFont",font);
  UIManager.put("Label.font",font);
  UIManager.put("List.font",font);
  UIManager.put("MenuBar.font",font);
  UIManager.put("Menu.font",font);
  UIManager.put("MenuItem.font",font);
  UIManager.put("RadioButtonMenuItem.font",font);
  UIManager.put("CheckBoxMenuItem.font",font);
  UIManager.put("PopupMenu.font",font);
  UIManager.put("OptionPane.font",font);
  UIManager.put("Panel.font",font);
  UIManager.put("ProgressBar.font",font);
  UIManager.put("ScrollPane.font",font);
  UIManager.put("Viewport",font);
  UIManager.put("TabbedPane.font",font);
  UIManager.put("TableHeader.font",font);
  UIManager.put("TextField.font",font);
  UIManager.put("PasswordFiled.font",font);
  UIManager.put("TextArea.font",font);
  UIManager.put("TextPane.font",font);
  UIManager.put("EditorPane.font",font);
  UIManager.put("TitledBorder.font",font);
  UIManager.put("ToolBar.font",font);
  UIManager.put("ToolTip.font",font);
  UIManager.put("Tree.font",font);//以上设置是为了解决中文问题
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//设置可视风格
  new Application1();
}
}
//************************************************文件选择过滤器
class myFilter extends javax.swing.filechooser.FileFilter {
String extension="",description="";
public myFilter(String extension,String description) {
if(extension!=null)this.extension=extension;
if(description!=null)this.description=description;
}

public String getDescription() {
return this.description;
}

public boolean accept(File file) {
if(file.isDirectory()||extension.equals(""))
      return true;
String[] s=extension.replaceAll("[*]","").split("[,]");
for(int i=0;i<s.length;i++) {
      if(file.getName().toLowerCase().endsWith(s[i].toLowerCase())) {
        return true;
      }
}
return false;
}
}

2025-10-29 18:40:37.448 22395-22395 MainActivity com.tencent.yolov5ncnn D decodeVideo: ------------/-1/2/content:/media/external/video/media/33/ORIGINAL/NONE/video/mp4/246521341===============/-1/2/content://media/external/video/media/33/ORIGINAL/NONE/video/mp4/246521341 2025-10-29 18:40:37.598 1515-22367 DatabaseUtils com...ndroid.providers.media.module E Writing exception to parcel java.lang.SecurityException: com.tencent.yolov5ncnn has no access to content://media/external/video/media/33 at com.android.providers.media.MediaProvider.enforceCallingPermissionInternal(MediaProvider.java:11734) at com.android.providers.media.MediaProvider.enforceCallingPermission(MediaProvider.java:11631) at com.android.providers.media.MediaProvider.checkAccess(MediaProvider.java:11755) at com.android.providers.media.MediaProvider.checkAccessForThumbnail(MediaProvider.java:9929) at com.android.providers.media.MediaProvider.ensureThumbnail(MediaProvider.java:9848) at com.android.providers.media.MediaProvider.openTypedAssetFileCommon(MediaProvider.java:9833) at com.android.providers.media.MediaProvider.openTypedAssetFile(MediaProvider.java:9773) at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:677) at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:341) at android.os.Binder.execTransactInternal(Binder.java:1421) at android.os.Binder.execTransact(Binder.java:1365) 2025-10-29 18:40:37.606 22395-22395 MediaStore com.tencent.yolov5ncnn W Failed to obtain thumbnail for content://media/external/video/media/33 java.io.IOException: java.lang.SecurityException: com.tencent.yolov5ncnn has no access to content://media/external/video/media/33 at android.graphics.ImageDecoder$CallableSource.createImageDecoder(ImageDecoder.java:615) at android.graphics.ImageDecoder.decodeBitmapImpl(ImageDecoder.java:1858) at android.graphics.ImageDecoder.decodeBitmap(ImageDecoder.java:1850) at android.content.ContentResolver.loadThumbnail(ContentResolver.java:4173) at android.content.ContentResolver.loadThumbnail(ContentResolver.java:4157) at android.provider.MediaStore$InternalThumbnails.getThumbnail(MediaStore.java:2932) at android.provider.MediaStore$Video$Thumbnails.getThumbnail(MediaStore.java:4612) at com.tencent.yolov5ncnn.MainActivity.decodeVideo(MainActivity.java:277) at com.tencent.yolov5ncnn.MainActivity.onActivityResult(MainActivity.java:228) at android.app.Activity.onActivityResult(Activity.java:7626) at android.app.Activity.internalDispatchActivityResult(Activity.java:9546) at android.app.Activity.dispatchActivityResult(Activity.java:9523) at android.app.ActivityThread.deliverResults(ActivityThread.java:6173) at android.app.ActivityThread.handleSendResult(ActivityThread.java:6223) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:78) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:63) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2823) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) Caused by: java.lang.SecurityException: com.tencent.yolov5ncnn has no access to content://media/external/video/media/33 at android.os.Parcel.createExceptionOrNull(Parcel.java:3340) at android.os.Parcel.createException(Parcel.java:3324) at android.os.Parcel.readException(Parcel.java:3307) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:201) at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:164) at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:814) at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:2045) at android.content.ContentResolver.openTypedAssetFile(ContentResolver.java:1950) at android.content.ContentResolver.lambda$loadThumbnail$0(ContentResolver.java:4174) at android.content.ContentResolver$$ExternalSyntheticLambda0.call(D8$$SyntheticClass:0) at android.graphics.ImageDecoder$CallableSource.createImageDecoder(ImageDecoder.java:610) ... 26 more 2025-10-29 18:40:37.637 22395-22395 ThumbnailUtils com.tencent.yolov5ncnn W java.io.IOException: Failed to create thumbnail at android.media.ThumbnailUtils.createVideoThumbnail(ThumbnailUtils.java:391) at android.media.ThumbnailUtils.createVideoThumbnail(ThumbnailUtils.java:333) at com.tencent.yolov5ncnn.MainActivity.decodeVideo(MainActivity.java:281) at com.tencent.yolov5ncnn.MainActivity.onActivityResult(MainActivity.java:228) at android.app.Activity.onActivityResult(Activity.java:7626) at android.app.Activity.internalDispatchActivityResult(Activity.java:9546) at android.app.Activity.dispatchActivityResult(Activity.java:9523) at android.app.ActivityThread.deliverResults(ActivityThread.java:6173) at android.app.ActivityThread.handleSendResult(ActivityThread.java:6223) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:78) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:63) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2823) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) Caused by: java.lang.IllegalArgumentException: /storage/emulated/0/Download/20251011_112303.mp4 does not exist at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:255) at android.media.ThumbnailUtils.createVideoThumbnail(ThumbnailUtils.java:362) ... 21 more 2025-10-29 18:40:37.663 22395-22395 MainActivity com.tencent.yolov5ncnn D decodeVideo_address: ====================/storage/emulated/0/Download/20251011_112303.mp4-------/storage/emulated/0 2025-10-29 18:40:37.912 22395-22395 System.err com.tencent.yolov5ncnn W Warning: Version of org.bytedeco:ffmpeg could not be found. 2025-10-29 18:40:37.933 22395-22395 nativeloader com.tencent.yolov5ncnn D Load libavutil.so using class loader ns clns-9 (caller=/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk): dlopen failed: library "libavutil.so" not found 2025-10-29 18:40:37.939 22395-22395 nativeloader com.tencent.yolov5ncnn D Load libjniavutil.so using class loader ns clns-9 (caller=/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk): dlopen failed: library "libjniavutil.so" not found 2025-10-29 18:40:37.956 22395-22395 nativeloader com.tencent.yolov5ncnn D Load libjnijavacpp.so using class loader ns clns-9 (caller=/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk): dlopen failed: library "libjnijavacpp.so" not found 2025-10-29 18:40:37.967 22395-22395 cent.yolov5ncnn com.tencent.yolov5ncnn I Rejecting re-init on previously-failed class java.lang.Class<org.bytedeco.ffmpeg.global.avutil>: java.lang.UnsatisfiedLinkError: dlopen failed: library "libjniavutil.so" not found at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1090) at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:1012) at void java.lang.System.loadLibrary(java.lang.String) (System.java:1765) at java.lang.String org.bytedeco.javacpp.Loader.loadLibrary(java.lang.Class, java.net.URL[], java.lang.String, java.lang.String[]) (Loader.java:1832) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean, java.lang.String) (Loader.java:1423) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean) (Loader.java:1234) at java.lang.String org.bytedeco.javacpp.Loader.load() (Loader.java:1210) at void org.bytedeco.ffmpeg.global.avutil.<clinit>() (avutil.java:14) at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2) at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:597) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean, java.lang.String) (Loader.java:1289) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean) (Loader.java:1234) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class) (Loader.java:1226) at void org.bytedeco.javacv.FFmpegFrameGrabber.tryLoad() (FFmpegFrameGrabber.java:111) at void org.bytedeco.javacv.FFmpegFrameGrabber.<clinit>() (FFmpegFrameGrabber.java:137) at void com.tencent.yolov5ncnn.MainActivity.decodeVideo(android.net.Uri) (MainActivity.java:298) at void com.tencent.yolov5ncnn.MainActivity.onActivityResult(int, int, android.content.Intent) (MainActivity.java:228) at void android.app.Activity.onActivityResult(int, int, android.content.Intent, android.app.ComponentCaller) (Activity.java:7626) at void android.app.Activity.internalDispatchActivityResult(java.lang.String, int, int, android.content.Intent, android.app.ComponentCaller, java.lang.String) (Activity.java:9546) at void android.app.Activity.dispatchActivityResult(java.lang.String, int, int, android.content.Intent, android.app.ComponentCaller, java.lang.String) (Activity.java:9523) at void android.app.ActivityThread.deliverResults(android.app.ActivityThread$ActivityClientRecord, java.util.List, java.lang.String) (ActivityThread.java:6173) at void android.app.ActivityThread.handleSendResult(android.app.ActivityThread$ActivityClientRecord, java.util.List, java.lang.String) (ActivityThread.java:6223) at void android.app.servertransaction.ActivityResultItem.execute(android.app.ClientTransactionHandler, android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions) (ActivityResultItem.java:78) at void android.app.servertransaction.ActivityTransactionItem.execute(android.app.ClientTransactionHandler, android.app.servertransaction.PendingTransactionActions) (ActivityTransactionItem.java:63) at void android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(android.app.servertransaction.ClientTransaction, android.app.servertransaction.ClientTransactionItem, boolean) (TransactionExecutor.java:133) at void android.app.servertransaction.TransactionExecutor.executeTransactionItems(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:103) at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:80) at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2823) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:110) 2025-10-29 18:40:37.967 22395-22395 cent.yolov5ncnn com.tencent.yolov5ncnn I at boolean android.os.Looper.loopOnce(android.os.Looper, long, int) (Looper.java:248) at void android.os.Looper.loop() (Looper.java:338) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:9067) at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:593) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:932) Caused by: java.lang.UnsatisfiedLinkError: Could not find jniavutil in class, module, and library paths. at java.lang.String org.bytedeco.javacpp.Loader.loadLibrary(java.lang.Class, java.net.URL[], java.lang.String, java.lang.String[]) (Loader.java:1799) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean, java.lang.String) (Loader.java:1423) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean) (Loader.java:1234) at java.lang.String org.bytedeco.javacpp.Loader.load() (Loader.java:1210) at void org.bytedeco.ffmpeg.global.avutil.<clinit>() (avutil.java:14) at java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2) at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:597) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean, java.lang.String) (Loader.java:1289) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class, java.util.Properties, boolean) (Loader.java:1234) at java.lang.String org.bytedeco.javacpp.Loader.load(java.lang.Class) (Loader.java:1226) at void org.bytedeco.javacv.FFmpegFrameGrabber.tryLoad() (FFmpegFrameGrabber.java:111) at void org.bytedeco.javacv.FFmpegFrameGrabber.<clinit>() (FFmpegFrameGrabber.java:137) at void com.tencent.yolov5ncnn.MainActivity.decodeVideo(android.net.Uri) (MainActivity.java:298) at void com.tencent.yolov5ncnn.MainActivity.onActivityResult(int, int, android.content.Intent) (MainActivity.java:228) at void android.app.Activity.onActivityResult(int, int, android.content.Intent, android.app.ComponentCaller) (Activity.java:7626) at void android.app.Activity.internalDispatchActivityResult(java.lang.String, int, int, android.content.Intent, android.app.ComponentCaller, java.lang.String) (Activity.java:9546) at void android.app.Activity.dispatchActivityResult(java.lang.String, int, int, android.content.Intent, android.app.ComponentCaller, java.lang.String) (Activity.java:9523) at void android.app.ActivityThread.deliverResults(android.app.ActivityThread$ActivityClientRecord, java.util.List, java.lang.String) (ActivityThread.java:6173) at void android.app.ActivityThread.handleSendResult(android.app.ActivityThread$ActivityClientRecord, java.util.List, java.lang.String) (ActivityThread.java:6223) at void android.app.servertransaction.ActivityResultItem.execute(android.app.ClientTransactionHandler, android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions) (ActivityResultItem.java:78) at void android.app.servertransaction.ActivityTransactionItem.execute(android.app.ClientTransactionHandler, android.app.servertransaction.PendingTransactionActions) (ActivityTransactionItem.java:63) at void android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(android.app.servertransaction.ClientTransaction, android.app.servertransaction.ClientTransactionItem, boolean) (TransactionExecutor.java:133) at void android.app.servertransaction.TransactionExecutor.executeTransactionItems(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:103) at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:80) 2025-10-29 18:40:37.967 22395-22395 cent.yolov5ncnn com.tencent.yolov5ncnn I at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2823) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:110) at boolean android.os.Looper.loopOnce(android.os.Looper, long, int) (Looper.java:248) at void android.os.Looper.loop() (Looper.java:338) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:9067) at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:593) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:932) 2025-10-29 18:40:37.967 22395-22395 AndroidRuntime com.tencent.yolov5ncnn D Shutting down VM 2025-10-29 18:40:37.972 22395-22395 AndroidRuntime com.tencent.yolov5ncnn E FATAL EXCEPTION: main Process: com.tencent.yolov5ncnn, PID: 22395 java.lang.NoClassDefFoundError: org.bytedeco.ffmpeg.global.avutil at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:597) at org.bytedeco.javacpp.Loader.load(Loader.java:1289) at org.bytedeco.javacpp.Loader.load(Loader.java:1234) at org.bytedeco.javacpp.Loader.load(Loader.java:1210) at org.bytedeco.ffmpeg.avformat.Read_packet_Pointer_BytePointer_int.<clinit>(Read_packet_Pointer_BytePointer_int.java:45) at org.bytedeco.javacv.FFmpegFrameGrabber.<clinit>(FFmpegFrameGrabber.java:372) at com.tencent.yolov5ncnn.MainActivity.decodeVideo(MainActivity.java:298) at com.tencent.yolov5ncnn.MainActivity.onActivityResult(MainActivity.java:228) at android.app.Activity.onActivityResult(Activity.java:7626) at android.app.Activity.internalDispatchActivityResult(Activity.java:9546) at android.app.Activity.dispatchActivityResult(Activity.java:9523) at android.app.ActivityThread.deliverResults(ActivityThread.java:6173) at android.app.ActivityThread.handleSendResult(ActivityThread.java:6223) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:78) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:63) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2823) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libjniavutil.so" not found at java.lang.Runtime.loadLibrary0(Runtime.java:1090) at java.lang.Runtime.loadLibrary0(Runtime.java:1012) at java.lang.System.loadLibrary(System.java:1765) at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1832) at org.bytedeco.javacpp.Loader.load(Loader.java:1423) at org.bytedeco.javacpp.Loader.load(Loader.java:1234) at org.bytedeco.javacpp.Loader.load(Loader.java:1210) at org.bytedeco.ffmpeg.global.avutil.<clinit>(avutil.java:14) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:597) at org.bytedeco.javacpp.Loader.load(Loader.java:1289) at org.bytedeco.javacpp.Loader.load(Loader.java:1234) at org.bytedeco.javacpp.Loader.load(Loader.java:1226) at org.bytedeco.javacv.FFmpegFrameGrabber.tryLoad(FFmpegFrameGrabber.java:111) at org.bytedeco.javacv.FFmpegFrameGrabber.<clinit>(FFmpegFrameGrabber.java:137) ... 20 more Caused by: java.lang.UnsatisfiedLinkError: Could not find jniavutil in class, module, and library paths. at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1799) ... 31 more 2025-10-29 18:40:37.998 22395-22401 cent.yolov5ncnn com.tencent.yolov5ncnn W Suspending all threads took: 10.983ms 2025-10-29 18:40:38.003 22395-22395 Process com.tencent.yolov5ncnn I Sending signal. PID: 22395 SIG: 9 ---------------------------- PROCESS ENDED (22395) for package com.tencent.yolov5ncnn ---------------------------- ---------------------------- PROCESS STARTED (22467) for package com.tencent.yolov5ncnn ---------------------------- 2025-10-29 18:40:38.442 22467-22467 nativeloader com.tencent.yolov5ncnn D Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok 2025-10-29 18:40:38.524 22467-22467 ApplicationLoaders com.tencent.yolov5ncnn D Returning zygote-cached class loader: /system/framework/android.test.base.jar 2025-10-29 18:40:38.524 22467-22467 ApplicationLoaders com.tencent.yolov5ncnn D Returning zygote-cached class loader: /system/framework/org.apache.http.legacy.jar 2025-10-29 18:40:38.638 22467-22467 nativeloader com.tencent.yolov5ncnn D Configuring clns-9 for other apk /data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk. target_sdk_version=24, uses_libraries=, library_path=/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/lib/x86_64:/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.tencent.yolov5ncnn 2025-10-29 18:40:38.646 22467-22467 cent.yolov5ncnn com.tencent.yolov5ncnn I AssetManager2(0x7ce5005aa8f8) locale list changing from [] to [en-US] 2025-10-29 18:40:38.656 22467-22467 GraphicsEnvironment com.tencent.yolov5ncnn V Currently set values for: 2025-10-29 18:40:38.656 22467-22467 GraphicsEnvironment com.tencent.yolov5ncnn V angle_gl_driver_selection_pkgs=[] 2025-10-29 18:40:38.656 22467-22467 GraphicsEnvironment com.tencent.yolov5ncnn V angle_gl_driver_selection_values=[] 2025-10-29 18:40:38.656 22467-22467 GraphicsEnvironment com.tencent.yolov5ncnn V com.tencent.yolov5ncnn is not listed in per-application setting 2025-10-29 18:40:38.657 22467-22467 GraphicsEnvironment com.tencent.yolov5ncnn V ANGLE allowlist from config: com.dreamgames.royalmatch com.dts.freefiremax com.dxx.firenow com.gramgames.mergedragons com.ludo.king com.mojang.minecraftpe com.my.defense com.nintendo.zaka com.os.airforce com.playrix.fishdomdd.gplay io.teslatech.callbreak jp.konami.prospia net.peakgames.toonblast 2025-10-29 18:40:38.657 22467-22467 GraphicsEnvironment com.tencent.yolov5ncnn V com.tencent.yolov5ncnn is not listed in ANGLE allowlist or settings, returning default 2025-10-29 18:40:38.658 22467-22467 GraphicsEnvironment com.tencent.yolov5ncnn V Neither updatable production driver nor prerelease driver is supported. 2025-10-29 18:40:38.699 22467-22484 DisplayManager com.tencent.yolov5ncnn I Choreographer implicitly registered for the refresh rate. 2025-10-29 18:40:38.746 22467-22467 cent.yolov5ncnn com.tencent.yolov5ncnn I AssetManager2(0x7ce5005a6758) locale list changing from [] to [en-US] 2025-10-29 18:40:38.807 22467-22484 EGL_emulation com.tencent.yolov5ncnn I Opening libGLESv1_CM_emulation.so 2025-10-29 18:40:38.810 22467-22484 EGL_emulation com.tencent.yolov5ncnn I Opening libGLESv2_emulation.so 2025-10-29 18:40:38.834 22467-22484 HWUI com.tencent.yolov5ncnn W Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... 2025-10-29 18:40:38.835 22467-22484 HWUI com.tencent.yolov5ncnn W Failed to initialize 101010-2 format, error = EGL_SUCCESS 2025-10-29 18:40:38.886 22467-22467 nativeloader com.tencent.yolov5ncnn D Load /data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk!/lib/x86_64/libyolov5ncnn.so using class loader ns clns-9 (caller=/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk!classes3.dex): ok 2025-10-29 18:40:38.886 22467-22467 YoloV5Ncnn com.tencent.yolov5ncnn D JNI_OnLoad 2025-10-29 18:40:38.887 22467-22467 vulkan com.tencent.yolov5ncnn D searching for layers in '/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/lib/x86_64' 2025-10-29 18:40:38.888 22467-22467 vulkan com.tencent.yolov5ncnn D searching for layers in '/data/app/~~wpHZcEljrl7Ahh8edVTnGw==/com.tencent.yolov5ncnn-NW_YKGdoQrdUIH2pwBkwkg==/base.apk!/lib/x86_64' 2025-10-29 18:40:38.889 22467-22467 ncnn com.tencent.yolov5ncnn W no vulkan device 2025-10-29 18:40:38.900 22467-22467 ashmem com.tencent.yolov5ncnn E Pinning is deprecated since Android Q. Please use trim or other methods. 2025-10-29 18:40:38.938 22467-22467 DesktopModeFlags com.tencent.yolov5ncnn D Toggle override initialized to: OVERRIDE_UNSET 2025-10-29 18:40:38.955 22467-22467 HWUI com.tencent.yolov5ncnn W Image decoding logging dropped! 2025-10-29 18:40:38.961 22467-22467 HWUI com.tencent.yolov5ncnn W Image decoding logging dropped! 2025-10-29 18:40:38.986 22467-22467 HWUI com.tencent.yolov5ncnn W Image decoding logging dropped! 2025-10-29 18:40:39.606 22467-22467 HWUI com.tencent.yolov5ncnn W Unknown dataspace 0 2025-10-29 18:40:40.173 22467-22467 InsetsController com.tencent.yolov5ncnn D hide(ime(), fromIme=false) 2025-10-29 18:40:40.177 22467-22467 ImeTracker com.tencent.yolov5ncnn I com.tencent.yolov5ncnn:d107d45c: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN 2025-10-29 18:40:42.226 22467-22472 cent.yolov5ncnn com.tencent.yolov5ncnn I Compiler allocated 5042KB to compile void android.view.ViewRootImpl.performTraversals()
最新发布
10-30
25/07/10 02:34:54 INFO mapreduce.Job: Task Id : attempt_1752127434545_0022_m_000000_0, Status : FAILED Error: java.io.IOException: Can't export data, please check task tracker logs at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:112) at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146) at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1758) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: java.lang.NumberFormatException: For input string: "2025-07-10 00:00:00" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:589) at java.lang.Long.valueOf(Long.java:803) at D_H_HTTP_APPTYPE.__loadFromFields(D_H_HTTP_APPTYPE.java:521) at D_H_HTTP_APPTYPE.parse(D_H_HTTP_APPTYPE.java:473) at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83) ... 10 more Container killed by the ApplicationMaster. Container killed on request. Exit code is 143 Container exited with a non-zero exit code 143
07-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值