1. 程式人生 > >java對文件等、附件線上預覽的詳細開發步驟解析:openOffice+SwfTools+FlexPaper

java對文件等、附件線上預覽的詳細開發步驟解析:openOffice+SwfTools+FlexPaper

線上預覽實現簡介:

    過程分為:1、使用OpenOffice(JODConverter)將不同型別的附件轉換為.pdf字尾的檔案(PDF);

                      2、使用SwfTools將pdf檔案轉換為swf檔案;

                      3、使用FlexPaper 在jsp中預覽swf檔案;

注意:此過程不包含檔案的上傳下載部分程式碼說明;

本文的系統環境為 windows

Linux我會在下篇部落格中進行說明(不同點也就是在安裝openoffice和swftools上的不同,在Linux比較麻煩容易出現很多小問題)

由於本人經驗有限,如有紕漏和不足 多多批評;

在此過程中遇到的問題以及解決方法,下面將進行詳細解析:(該文可能會隨時更新)

首先第一步(安裝包下載以及安裝):

1.openoffice是Apache下的一個開放免費的文書處理軟體

2.SWFTools是一組用來處理Flash的swf檔案的工具包,我們使用它將pdf檔案轉成swf檔案!

3.FlexPaper是一個開源輕量級的在瀏覽器上顯示各種文件的元件(下載下來後解壓即可)

將所下載的檔案進行安裝(除了FlexPaper),碟符可設定!需要說明一下openOffice

安裝openoffice(第三方工具) 使用的版本為4.1.2

openoffice.org是一套sun的開源office辦公套件,能在widows,linux,solaris等作業系統上執行


可以將word、excel、ppt、txt等檔案轉換為pdf檔案;(下載完成後直接安裝即可)

安裝完成後,我們還需要啟動openoffice server。有兩種做法:

1.以命令列方式啟動openoffice server,缺點是每次系統重啟,都需要手動去把openoffice server啟動。

    2.將openoffice server作為作業系統的服務啟動,既然成為了系統服務,就可以設定開機自動啟動了。

    我們先來看第一種方式,

1.以命令列方式啟動openoffice server

  在cmd命令下,cd opeonofiice的安裝路徑/program 如:cd C:\Program Files (x86)\OpenOffice 4\program

在這層目錄下執行下面的命令即可

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard


127.0.0.1 :是安裝openOffice的主機可以寫成 指定的ip

2.以系統服務的方式啟動

    這裡我們還需要Windows Resource Kit tools ,將openoffice server設為系統服務。

Windows Resource Kit tools 是微軟專為管理人員、開發人員和高階使用者開發的,包括管理活動目錄、組策略、TCP/IP網路、登錄檔、系統安全、監測等涉及Windows Server 2003 作業系統的其它很多方面的非常規安裝的工具元件。Resource Kit Tools for XP的釋出使得XP使用者也能使用Resource Kit Tools對這些問題進行處理。

  下載windows resource kit tools,我們進行預設安裝。

    1.開啟Windows Resource Kit Tools

    在Command Shell執行以下命令:

 "C:\Program Files\Windows Resource Kits\Tools\instsrv" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"

開啟 管理工具->服務 可以找到以 OpenOfficeUnoServer 命名的服務

    2.開啟登錄檔尋找以下路徑

    HKEY_LOCAL_MACHINE -> SYSTEM ->ControlSet001 ->Services ->OpenOfficeUnoServer

  新建項 Parameters,在該項下新增兩個字串值:

  key:Application

     value:C:\Program Files\OpenOffice.org 3\program\soffice.exe

      key:AppParameters

    value:-invisible -headless -accept=socket,host=127.0.0.1,port=8100;urp;-nofirststartwizard

     3.在服務控制檯啟動 openoffice 服務

      4.在CMD中用以下命令檢視8100是否已被監聽:netstat -anop tcp

這樣OpenOffice3.0就以服務方式執行在Windows系統上了。(使用cmd命令:netstat -aon|findstr 8100檢視8100埠是否工作)

然後可以通過socket方式連線openOffice,以使用openoffice提供的某些服務,如檔案轉換服務,ms office轉pdf等等。

開源專案JODConverter 就是結合openoffice來進行文件轉換的java元件。

另外有一個命令列工具swftools,該工具可以將pdf轉換為swf格式的文件,提供給ie客戶端流覽。    

  另外,我們可以將該配置用bat檔案來快速實現,執行前請先修改相應目錄引數:

     openoffice service.bat檔案

    "C:\Program Files\Windows Resource Kits\Tools\instsrv" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
    reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters /ve /d
    reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters /v Application /t REG_SZ /d "C:\Program Files\OpenOffice.org 3\program\soffice.exe"
    reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters /v AppParameters /t REG_SZ /d "-invisible -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard"

第二步:開發過程解析(此過程對主要的程式碼進行說明)

  1、 在已有專案中或者新建web專案;

在專案中需要新增引入依賴的jar包以及js檔案,缺少的jar包可自行下載:我習慣在這裡下載http://cn.jarfire.org/

需要的jar包


需要的js檔案swf檔案,此檔案在flexPaper的包中的js資料夾下



將js以及swf檔案,放在專案根目錄的自定義的包下,以便在jsp中引用;

特別說明的是 flexpaper.js需要修改一下,很簡單

修改的目的是因為你所引用的swf檔案,是可以隨意存放在你自定義的資料夾下,保證我們來引用就可以,這裡就是修改的檔案路徑(舉例說明)


到這步基本具備了實現預覽功能的輔助的工具以及第三方包的引入;

2、建立轉換類

import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;


import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;


import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
import com.integrity.dataSmart.impAnalyImport.util.ContentType;
import com.integrity.dataSmart.impAnalyImport.util.FileTools;
import com.integrity.lawCase.util.ChineTo16Utils;
/**
 * doc docx格式轉換
 * @author Liubf
 * 文字線上預覽實現
 */
public class DocConverter {
private static Logger logger = Logger.getLogger(DocConverter.class);
    private static int environment;//環境1:windows 2:linux(涉及pdf2swf路徑問題)
    private String fileString;
    private String outputPath;//輸入路徑,如果不設定就輸出在預設位置(上傳檔案儲存的路徑)
    private String fileName;
    private File pdfFile;
    private File swfFile;
    private File docFile;
    static{
    if(isWindowsSys()){
    environment = 1;
    }else{
    environment = 2;
    }
    }
    public DocConverter(String fileString){
        ini(fileString);
    }
    /*
     * 重新設定 file
     * @param fileString
     */
    public void setFile(String fileString){
        ini(fileString);
    }
    /**
     * @param fileString
     * 初始化
     */
    private void ini(String fileString){
        this.fileString=fileString;
        fileName=fileString.substring(0,fileString.lastIndexOf("."));
        docFile=new File(fileString);
        pdfFile=new File(fileName+".pdf");
        String s = fileName.substring(0,fileName.lastIndexOf(File.separator));
        String e = fileName.substring(fileName.lastIndexOf(File.separator)+1);
  String utf8name = ChineTo16Utils.getUtf8(e);
  utf8name = s+File.separator+utf8name;
        swfFile=new File(utf8name+".swf");//轉換後輸出的swf檔案
    }
    /**
     * 判斷是否是windows作業系統
     * @author Liubf
     * @return true false
     */
    private static boolean isWindowsSys() {
       String p = System.getProperty("os.name");
       return p.toLowerCase().indexOf("windows") >= 0 ? true : false;
    }
    
    /**

     * 轉pdf檔案

     */
    private void doc2pdf(String serviceIp){
        if(docFile.exists()){
         if(!pdfFile.exists()){

       OpenOfficeConnection connection=new SocketOpenOfficeConnection(serviceIp,8100);

//serverIP是openoffice的服務ip,這樣是因為避免openoffice的服務不在同一臺伺服器上

//如果是本地服務這樣 SocketOpenOfficeConnection("127.0.0.1",8100);就可以,

//或者SocketOpenOfficeConnection("127.0.0.1",8100)

         try{
             connection.connect();
             DocumentConverter converter=new OpenOfficeDocumentConverter(connection);
             try {
                    converter.convert(docFile,pdfFile);
                    //close the connection
} catch (Exception e) {
logger.error("文字格式不符合要求:建議安裝最新版本的openoffice",e);
}
          }catch(java.net.ConnectException e){
                logger.error("****swf轉換異常,openoffice服務未啟動!****",e);
          }catch(com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e){
                    logger.error("****swf轉換器異常,讀取轉換檔案失敗****",e);
                    throw e;
             }catch(Exception e){
                  e.printStackTrace();
                  throw e;
                }finally {  
                    if (connection != null) {  
                        connection.disconnect();
                        connection = null;  
                    }  
                } 
            }else{
                //System.out.println("****已經轉換為pdf,不需要再進行轉化****");
            }
        }else{
        logger.error("****swf轉換器異常,需要轉換的文件不存在,無法轉換****");
        }
    }
    /**

     * 轉swf檔案

     */
 private void pdf2swf(String exePath){//exePath引數是swftools執行檔案的路徑
        Runtime r=Runtime.getRuntime();
        if(!swfFile.exists()){
            if(pdfFile.exists()){
                if(environment==1){//windows環境處理

try { Process p=r.exec(

exePath+" "+pdfFile.getPath()+" -o "+swfFile.getPath()+" -T 9 -t -s storeallcharacters");

                 loadStream(p.getInputStream());
                 //System.out.print(loadStream(p.getInputStream()));
                 //System.err.print(loadStream(p.getErrorStream()));
                 //System.out.print(loadStream(p.getInputStream()));
                 System.err.println("****swf轉換成功,檔案輸出:"+swfFile.getPath()+"****");
                        if(pdfFile.exists())
                        {
                            pdfFile.delete();
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }else if(environment==2){//linux環境處理
                    try {

Process p=r.exec(

exePath+" "+pdfFile.getPath()+" -o "+swfFile.getPath()+" -T 9 -t -s storeallcharacters");

                 loadStream(p.getInputStream());
                 //System.out.print(loadStream(p.getInputStream()));
                 //System.err.print(loadStream(p.getErrorStream()));
                 //System.err.println("****swf轉換成功,檔案輸出:"+swfFile.getPath()+"****");
                        if(pdfFile.exists()){
                            pdfFile.delete();
                        }
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }else{
            logger.error("****pdf不存在,無法轉換****");
            }
        }else{
        logger.info("****swf已存在不需要轉換****");
        }
    }
    static String loadStream(InputStream in){
        int ptr=0;
        in=new BufferedInputStream(in);
        StringBuffer buffer=new StringBuffer();
        try {
while((ptr=in.read())!=-1)
{
   buffer.append((char)ptr);
}
} catch (IOException e) {
logger.error("載入資料流異常",e);
}
        return buffer.toString();
    }
    /**
     * @param fileName 檔名(含字尾)
     * @return true false
     * 轉換主方法
     */
    public boolean conver(String fileName,String openIp,String exePath){
    String fileTypes =  FileTools.getTypeByFileName(fileName);
String contentTypes= ContentType.getNameByType(fileTypes);
if (StringUtils.isBlank(contentTypes)) {
logger.error("當前檔案型別不支援預覽: "+ fileName );
return false;
}else{
        if(swfFile.exists())
        {
            //System.out.println("****swf轉換器開始工作,該檔案已經轉換為swf****");
            return true;
        }
        try {
            doc2pdf(openIp);
            pdf2swf(exePath);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        if(swfFile.exists())
        {
            return true;
        }
        else {
            return false;
        }
    }
    }

   
}

3 轉碼工具類ChineToUtfUtils目的是因為flexPaper對swf檔案進行預覽載入的時候,檔名會預設轉碼為utf-8(處理後),這樣會導致如果上傳的中文名的檔案預覽失敗,包錯404找不到,就是因為檔名被轉碼;

/**
 * @author liuBf
 * 獲取中文的utf-8編碼值
 *
 */
public class ChineToUtfUtils {
public static String getUtf8(String strInput){
        StringBuffer output = new StringBuffer();
        for (int i = 0; i < strInput.length(); i++)
        {
            output.append(Integer.toString(strInput.charAt(i), 16));
        }
        return output.toString().toUpperCase();
}

4.上傳檔案的程式碼 中呼叫程式碼(主要)

//將文字轉換為swf檔案,用於線上預覽;
DocConverter d=new DocConverter(realpath+fileName);//引數為上傳檔案的路徑以及檔名稱

String exe = swfdatas.get("swf.exe").toString();
String openIp = swfdatas.get("openoffice.ip").toString();

//exe 是我在專案啟動時,自動載入的配置資訊,也就是swfTools的執行檔案路徑

//openIp是openoffice的服務ip
d.conver(fileName,openIp,exe);

如果初步測試可這樣寫(open為本地服務):

DocConverter d=new DocConverter(realpath+fileName);

d.conver(fileName,"127.0.0.1",“E:/SWFtools/pdf2swf.exe”);//這是swfTools安裝目錄下的exe檔案

//E:/SWFtools/pdf2swf.exe被呼叫後,實現pdf轉swf

也就是說action中值加入這三行程式碼;

上傳檔案成功(同時也生成了swf可預覽的檔案);

5、點選預覽時呼叫的action程式碼

public String toShowIngOnline(){

//在這裡因為特別原因,我會在資料庫中重新查到上傳檔案的資料(所要預覽的檔案)

//其實在前臺可以直接將要預覽的檔案路徑傳過來 接受就可以了

//這裡可更具具體情況編碼
String fid = request.getParameter("fid");
FilesObject fo = fileManageService.getFileinfoByid(Long.valueOf(fid));
String filename = fo.getFileName().substring(0,fo.getFileName().indexOf(".")).trim();
filename = ChineToUtfUtils.getUtf8(filename);
String directory = "images/uploadFile/"+fo.getAnnexName()+"/"+filename+".swf";
request.getSession().setAttribute("swfpath", directory);  
return SUCCESS;
}

6 建立showingOnline.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<%  
    String swfFilePath=session.getAttribute("swfpath").toString();
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >  
<html>  
<head> 
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<script type="text/javascript" src="scripts/showOnline/jquery.min.js"></script>  
<script type="text/javascript" src="scripts/showOnline/flexpaper.js"></script>  
<style type="text/css" media="screen">   
            html, body  { height:100%; }  
            body { margin:0; padding:0; overflow:auto; }     
            #flashContent { display:none; }  
        </style>   
  
<title>文件線上預覽系統</title>  
</head>  
<body>   
      <div id="viewerPlaceHolder" class="flexpaper_viewer" style="width:1084px;height:560px;"></div> 
          <script type="text/javascript"> 
            $('#viewerPlaceHolder').FlexPaperViewer(     
                    { config : {  
                    SWFFile : escape('<%=swfFilePath%>'),  
                    Scale : 1,   
                    ZoomTransition : 'easeOut',  
                    ZoomTime : 0.5,  
                    ZoomInterval : 0.2,  
                    FitPageOnLoad : false,  
                    FitWidthOnLoad : true,  
                    FullScreenAsMaxWindow : false,  
                    ProgressiveLoading : false,  
                    MinZoomSize : 0.5,  
                    MaxZoomSize : 2,  
                    SearchMatchAll : true,  
                    InitViewMode : 'Portrait',
                    ReaderingOrder :'false',
                    StartAtPage :'',
                    ViewModeToolsVisible : true,  
                    ZoomToolsVisible : true,  
                    NavToolsVisible : true,  
                    CursorToolsVisible : true,  
                    SearchToolsVisible : true,
                    
                    localeChain: 'zh_CN'  
                    }});    
            </script>              
         
</body>  
</html>


7、測試收工


8、FlexPaper api

Flexpaper可能用到如下引數

SwfFile (String) 需要使用Flexpaper開啟的文件
Scale (Number) 初始化縮放比例,引數值應該是大於零的整數
ZoomTransition (String) Flexpaper中縮放樣式,它使用和Tweener一樣的樣式,預設引數值為easeOut.其他可選值包括: easenone, easeout, linear, easeoutquad
ZoomTime (Number) 從一個縮放比例變為另外一個縮放比例需要花費的時間,該引數值應該為0或更大。
ZoomInterval (Number) 縮放比例之間間隔,預設值為0.1,該值為正數。
FitPageOnLoad (Boolean) 初始化得時候自適應頁面,與使用工具欄上的適應頁面按鈕同樣的效果。
FitWidthOnLoad (Boolean) 初始化的時候自適應頁面寬度,與工具欄上的適應寬度按鈕同樣的效果。
localeChain (String) 設定地區(語言),目前支援以下語言。
en_US (English) 
fr_FR (French) 
zh_CN (Chinese, Simple) 
es_ES (Spanish) 
pt_BR (Brazilian Portugese) 
ru_RU (Russian) 
fi_FN (Finnish) 
de_DE (German) 
nl_NL (Netherlands) 
tr_TR (Turkish) 
se_SE (Swedish) 
pt_PT (Portugese) 
el_EL (Greek) 
da_DN (Danish) 
cz_CS (Czech) 
it_IT (Italian) 
pl_PL (Polish) 
pv_FN (Finnish) 
hu_HU (Hungarian)
FullScreenAsMaxWindow (Boolean) 當設定為true的時候,單擊全屏按鈕會開啟一個flexpaper最大化的新視窗而不是全屏,當由於flash播放器因為安全而禁止全屏,而使用flexpaper作為獨立的flash播放器的時候設定為true是個優先選擇。
ProgressiveLoading (Boolean) 當設定為true的時候,展示文件時不會載入完整個文件,而是逐步載入,但是需要將文件轉化為9以上的flash版本(使用pdf2swf的時候使用-T 9 標籤)。
MaxZoomSize (Number) 設定最大的縮放比例。
MinZoomSize (Number) 最小的縮放比例。
SearchMatchAll (Boolean) 設定為true的時候,單擊搜尋所有符合條件的地方高亮顯示。
InitViewMode (String) 設定啟動模式如"Portrait" or "TwoPage".
ViewModeToolsVisible (Boolean) 工具欄上是否顯示樣式選擇框。
ZoomToolsVisible (Boolean) 工具欄上是否顯示縮放工具。
NavToolsVisible (Boolean) 工具欄上是否顯示導航工具。
CursorToolsVisible (Boolean) 工具欄上是否顯示游標工具。

SearchToolsVisible (Boolean)

工具欄上是否顯示搜尋。


我經歷的這個懊惱的過程...希望對大家有幫助;

有問題可諮詢我(小民工一個);

[email protected] 

微博:TactyBOY

相關推薦

java附件線上詳細開發步驟解析openOffice+SwfTools+FlexPaper

線上預覽實現簡介:     過程分為:1、使用OpenOffice(JODConverter)將不同型別的附件轉換為.pdf字尾的檔案(PDF);                       2、使用SwfTools將pdf檔案轉換為swf檔案;              

java移動 慎用java file.renameTo(f)方法 java從一個目錄復制到另一個目錄下 java代碼完成刪除

不存在 art 我的電腦 lan nbsp 文件 刪除文件 csdn 結果 java移動文件夾(包含子文件和子文件夾): http://blog.csdn.net/yongh701/article/details/45070353 慎用java file.rename

java的操作

see fileinput 字節數 文件流 name 一段 har else 操作 1、按字節讀取文件內容2、按字符讀取文件內容3、按行讀取文件內容 4、隨機讀取文件內容 public class ReadFromFile { /** * 以字節為單位

Java開發必備java幫助網址下載或線上幫助

* HTML 格式 ( http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api/index.html ) * zip 格式 ( h

WebForm實現上傳,並

image form ict itl lec nbsp style object 是否 實現效果: 頁面代碼: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inh

附件線上控制元件實現的市場調研

附件線上預覽控制元件實現的市場調研 注:此為博主(yjclsx)市場調研的原創文件,若要轉載,請標明出處! 一、POI實現 使用poi元件(是java的jar包,因此.net不支援)可以將excel、word轉換為html,將ppt轉換為圖片,這些都是可以直接被瀏覽器識別的檔案型別,由此實現

郵件附件線上——HTML Filter

郵件附件線上預覽,就是當收到郵件帶有附件時,尤其是超大附件,可以不用下載郵件中的附件,通過web頁面,以線上的方式讀取其中的內容。此功能方便使用者直接檢視附件,節省下載的時間,同時也在很多時候極大的方便了沒有安裝相應軟體的使用者,對於異地登入郵箱使用者,更是一項不錯的服務

java 使用poi將PPT轉為圖片,線上PPT

線上預覽PPT,我的思路為java 使用poi將PPT轉為圖片,圖片儲存到指定的資料夾下面,然後返回生成的圖片名稱集合,將圖片路徑遍歷到前臺的html標籤上,用HTML前臺模仿畫一個PPT框架,操作圖片地址路徑從而實現模擬線上預覽的效果;前臺程式碼省略,如下是後臺的一個工具類

中文2-快速上手-MoviePy-

快速瞭解 回到目錄  下面的內容介紹以下MoviePy適用於何種場景以及MoviePy如何工作。 我需要使用MoviePy嗎? 出於以下的情景或原因,我們可能會有使用Python做視訊編輯的需求。 *我們有大量的視訊需要處理,或者採用複雜的方式將他們拼接。 *我們

javaofficepdf線上解析(融合進專案中)

最近在專案中要做一個文件的預覽,在網上搜了好多demo,都可以實現其功能,但是放在自己的專案中有點複雜。 先說明本人的開發環境(win7+tomcat7+maven+svn+myeclipse),接下來最直觀的專案需求,如下圖: 當用戶點選預覽的時候能看各種文件,其實在這

java通過url線上Wordexcelpptpdftxt中的內容【只獲得其中的文字】

在頁面上顯示各種文件中的內容。在servlet中的邏輯 word:  BufferedInputStream bis = null;   URL url = null;   HttpURLConnection httpUrl = null; // 建立連結   url

apache poi操作office----java線上txtwordpptexecel,pdf程式碼

在頁面上顯示各種文件中的內容。在servlet中的邏輯 word:  BufferedInputStream bis = null;   URL url = null;   HttpURLConnection httpUrl = null; // 建立連結   u

2017.06.06-日記-面向象-this關鍵字及JAVA結構

ret 實例 保存 傳參 導包 imp scan 創建 內存地址 這是今天的筆記,只是一些理論,後面有幾個練習一塊貼上來了, this:當前類的對象引用使用場合(都是類的內部):1.獲取實例本身 public A getA(){return this}2.獲取類的成員

Java中IO流讀取寫入和復制

復制 循環 int files catch class close brush system //構造文件File類 File f=new File(fileName); //判斷是否為目錄 f.isDirectory(); //獲取目錄下的文件名 String[] fil

轉發centos徹底刪除命令(centos 新建刪除移動復制命令)

目錄 str detail 文件夾 目的 刪除文件夾 -i 命名 新建文件夾 http://blog.csdn.net/lpdx111/article/details/16877725 centos徹底刪除文件夾、文件命令(centos 新建、刪除、移動、復制等命令:

Java夾進行重命名

更改 執行 board oid 文件名 file data- pla bsp 在Java中,對文件或文件夾進行重命名是很簡單的,因為Java的File類已經封裝好renameTo的方法。 修改文件或者文件夾的名字都使用這個方法。例如如下的程序: [java

Python管理亂碼及passwd排序

() oss ora nco ges pool doc post game 1.讀寫文件讀文件: f = open("1.txt") text = f.readlines() print(text)寫文件: f = open(

讀寫方法python2的亂碼問題pythonpasswd進行排序

__main__ .com 哈哈 == nco star 9.png mar ges 讀寫文件 if __name__==‘__main__‘: filename=input(‘請輸入保存的文件:‘) fdfile=open(filename,‘w+‘)

python之操作OS模塊面向

文件系統、OS、面向對象一 文件操作 1 文件系統和文件 在磁盤上讀寫文件的功能都是由操作系統提供的,現代操作系統不允許普通的程序直接操作磁盤,所以,讀寫文件就是請求操作系統打開一個文件對象(通常稱為文件描述符),然後,通過操作系統提供的接口從這個文件對象中讀取數據(讀文件),或者把數據寫入這個文件對象(寫文

Ceph 之 塊設備系統象存儲的使用

ceph 塊設備/對象存儲/文件系統 上面左邊是我的個人微信,如需進一步溝通,請加微信。 右邊是我的公眾號“Openstack私有雲”,如有興趣,請關註。 繼上篇《Ceph 之 使用ceph-deploy部署ceph集群》,ceph集群搭建完成之後,接下來就是使用了,ceph集群可以提供給塊設備、文