GVKun编程网logo

使用SQL凭据通过OpenRowSet打开文件

12

如果您想了解使用SQL凭据通过OpenRowSet打开文件的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析javax.sql.rowset.JoinRowSet的实例源码、matlab中fop

如果您想了解使用SQL凭据通过OpenRowSet打开文件的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析javax.sql.rowset.JoinRowSet的实例源码、matlab中fopen 打开文件或获得有关打开文件的信息、OpenRead方法打开文件并读取、openrowset的各个方面,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

使用SQL凭据通过OpenRowSet打开文件

使用SQL凭据通过OpenRowSet打开文件

我正在尝试运行以下语句:

INSERT INTO table SELECT * FROM 
OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;
Database=//server/folder/file.xls;
HDR=YES;','SELECT * FROM [Sheet1$]')

但是,我收到以下错误:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "The Microsoft Access database engine cannot open or write to the file '\\server\folder\file.xls'. It is already opened exclusively by another user,or you need permission to view and write its data.".

Msg 7303,Level 16,State 1,Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

我在32位计算机上运行SQL Server 2005。最终执行的代码将来自IIS6 Web服务器上的c#代码。但是,当前我只是试图使其在SQL
Server上运行。我已使用SQL Auth登录到SQL Server,但必须使用特定于共享驱动器(我们网络上的AD帐户)的Windows
Auth访问该文件。为了允许,已将临时特权授予SQL Auth帐户OPENROWSET

我试图添加UID=user;PASS=pswdOPENROWSET下面的代码中:

INSERT INTO table SELECT * FROM 
    OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;
    Database=//server/folder/file.xls;
    HDR=YES;
UID=user;
PASS=pswd','SELECT * FROM [Sheet1$]')

这产生了相同的错误。我还CREDENTIAL使用用户ID设置了SQL ,并通过Windows Auth Active
Directory帐户访问了该共享驱动器,但仍然存在错误。

我考虑过使用代理,但这不是SQL Server代理作业。这是一个特别的电话。

我还使用具有共享权限的用户使用Windows Auth登录了SQL Server,并得到了相同的错误。

我对此进行了很多研究,但似乎找不到有效的答案。通过我的搜索,这似乎是很多人遇到的问题。任何帮助将不胜感激。我很困惑

javax.sql.rowset.JoinRowSet的实例源码

javax.sql.rowset.JoinRowSet的实例源码

项目:jdk8u-jdk    文件:JoinRowSetTests.java   
private void validateResults(final JoinRowSet jrs) throws sqlException {
    List<Integer> results = new ArrayList<>();
    jrs.beforeFirst();
    while (jrs.next()) {
        if (jrs.getInt(JOIN_COLNAME) == SUP_ID) {
            results.add(jrs.getInt("COF_ID"));
        }
    }
    assertEquals(results.toArray(),EXPECTED);
}
项目:jdk8u-jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0000(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        jrs.addRowSet(crs,JOIN_COLNAME);
        jrs.addRowSet(crs1,JOIN_COLNAME);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u-jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0001(CachedRowSet crs,COFFEES_JOIN_COLUMN_INDEX);
        jrs.addRowSet(crs1,supplierS_JOIN_COLUMN_INDEX);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u-jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0002(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        RowSet[] rowsets = {crs,crs1};
        String[] joinCols = {JOIN_COLNAME,JOIN_COLNAME};
        jrs.addRowSet(rowsets,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u-jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0003(CachedRowSet crs,crs1};
        int[] joinCols = {COFFEES_JOIN_COLUMN_INDEX,supplierS_JOIN_COLUMN_INDEX};
        jrs.addRowSet(rowsets,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u-jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0005(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(JOIN_COLNAME);
        crs1.setMatchColumn(JOIN_COLNAME);
        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u-jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0006(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(COFFEES_JOIN_COLUMN_INDEX);
        crs1.setMatchColumn(supplierS_JOIN_COLUMN_INDEX);

        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk-jdk10    文件:JoinRowSetTests.java   
private void validateResults(final JoinRowSet jrs) throws sqlException {
    List<Integer> results = new ArrayList<>();
    jrs.beforeFirst();
    while (jrs.next()) {
        if (jrs.getInt(JOIN_COLNAME) == SUP_ID) {
            results.add(jrs.getInt("COF_ID"));
        }
    }
    assertEquals(results.toArray(),EXPECTED);
}
项目:openjdk-jdk10    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0000(CachedRowSet crs,JOIN_COLNAME);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk-jdk10    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0001(CachedRowSet crs,supplierS_JOIN_COLUMN_INDEX);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk-jdk10    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0002(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk-jdk10    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0003(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk-jdk10    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0005(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(JOIN_COLNAME);
        crs1.setMatchColumn(JOIN_COLNAME);
        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk-jdk10    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0006(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(COFFEES_JOIN_COLUMN_INDEX);
        crs1.setMatchColumn(supplierS_JOIN_COLUMN_INDEX);

        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk9    文件:JoinRowSetTests.java   
private void validateResults(final JoinRowSet jrs) throws sqlException {
    List<Integer> results = new ArrayList<>();
    jrs.beforeFirst();
    while (jrs.next()) {
        if (jrs.getInt(JOIN_COLNAME) == SUP_ID) {
            results.add(jrs.getInt("COF_ID"));
        }
    }
    assertEquals(results.toArray(),EXPECTED);
}
项目:openjdk9    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0000(CachedRowSet crs,JOIN_COLNAME);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk9    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0001(CachedRowSet crs,supplierS_JOIN_COLUMN_INDEX);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk9    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0002(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk9    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0003(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk9    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0005(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(JOIN_COLNAME);
        crs1.setMatchColumn(JOIN_COLNAME);
        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:openjdk9    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0006(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(COFFEES_JOIN_COLUMN_INDEX);
        crs1.setMatchColumn(supplierS_JOIN_COLUMN_INDEX);

        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u_jdk    文件:JoinRowSetTests.java   
private void validateResults(final JoinRowSet jrs) throws sqlException {
    List<Integer> results = new ArrayList<>();
    jrs.beforeFirst();
    while (jrs.next()) {
        if (jrs.getInt(JOIN_COLNAME) == SUP_ID) {
            results.add(jrs.getInt("COF_ID"));
        }
    }
    assertEquals(results.toArray(),EXPECTED);
}
项目:jdk8u_jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0000(CachedRowSet crs,JOIN_COLNAME);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u_jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0001(CachedRowSet crs,supplierS_JOIN_COLUMN_INDEX);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u_jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0002(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u_jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0003(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u_jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0005(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(JOIN_COLNAME);
        crs1.setMatchColumn(JOIN_COLNAME);
        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:jdk8u_jdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0006(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(COFFEES_JOIN_COLUMN_INDEX);
        crs1.setMatchColumn(supplierS_JOIN_COLUMN_INDEX);

        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:JoinRowSetTests.java   
private void validateResults(final JoinRowSet jrs) throws sqlException {
    List<Integer> results = new ArrayList<>();
    jrs.beforeFirst();
    while (jrs.next()) {
        if (jrs.getInt(JOIN_COLNAME) == SUP_ID) {
            results.add(jrs.getInt("COF_ID"));
        }
    }
    assertEquals(results.toArray(),EXPECTED);
}
项目:lookaside_java-1.8.0-openjdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0000(CachedRowSet crs,JOIN_COLNAME);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0001(CachedRowSet crs,supplierS_JOIN_COLUMN_INDEX);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0002(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0003(CachedRowSet crs,joinCols);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0005(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(JOIN_COLNAME);
        crs1.setMatchColumn(JOIN_COLNAME);
        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:JoinRowSetTests.java   
@Test(dataProvider = "createCachedRowSetsToUse")
public void joinRowSetTests0006(CachedRowSet crs,CachedRowSet crs1)
        throws Exception {

    try (JoinRowSet jrs = newInstance()) {
        crs.setMatchColumn(COFFEES_JOIN_COLUMN_INDEX);
        crs1.setMatchColumn(supplierS_JOIN_COLUMN_INDEX);

        jrs.addRowSet(crs);
        jrs.addRowSet(crs1);
        validateResults(jrs);
        crs.close();
        crs1.close();
    }
}
项目:cn1    文件:JoinRowSetWebrowSetTest.java   
public void testreadxml_Empty() throws Exception {
    jrs = newJoinRowSet();
    jrs.addRowSet(crset,1);
    StringWriter writer = new StringWriter();
    jrs.writeXml(writer);

    JoinRowSet another = newJoinRowSet();
    another.readxml(new StringReader(writer.getBuffer().toString()));

    assertCachedRowSetEquals(jrs,another);
}
项目:cn1    文件:JoinRowSetWebrowSetTest.java   
public void testWriteAndRead_Insert() throws Exception {
    jrs.addRowSet(crset,1);
    jrs.beforeFirst();
    assertTrue(jrs.next());
    jrs.movetoInsertRow();
    jrs.updateInt(1,5);
    jrs.updateString(2,"insertrow");
    jrs.insertRow();
    jrs.movetoCurrentRow();
    jrs.beforeFirst();

    jrs.absolute(2);
    assertTrue(jrs.rowInserted());

    StringWriter writer = new StringWriter();
    jrs.writeXml(writer);

    JoinRowSet another = newJoinRowSet();
    another.readxml(new StringReader(writer.getBuffer().toString()));

    if (System.getProperty("Testing Harmony") == "true") {
        assertCachedRowSetEquals(jrs,another);
    } else {
        // Todo why the output xml has no insert information.
        another.absolute(2);
        assertFalse(another.rowInserted());
        jrs.absolute(2);
        assertTrue(jrs.rowInserted());
    }
}
项目:cn1    文件:JoinRowSetWebrowSetTest.java   
public void testWriteAndRead_Update() throws Exception {
    jrs.addRowSet(crset,1);
    jrs.beforeFirst();

    assertTrue(jrs.absolute(3));
    jrs.updateString(2,"updateRow");
    jrs.updateRow();

    assertTrue(jrs.next());
    jrs.updateString(2,"anotherUpdateRow");
    jrs.updateRow();

    StringWriter writer = new StringWriter();

    jrs.writeXml(writer);

    JoinRowSet another = newJoinRowSet();
    another.readxml(new StringReader(writer.getBuffer().toString()));


    if (System.getProperty("Testing Harmony") == "true") {
        assertCachedRowSetEquals(jrs,another);
    } else {
        another.absolute(3);
        assertFalse(another.rowUpdated());
        jrs.absolute(3);
        assertTrue(jrs.rowUpdated());

        // Todo why the output xml has no update information.
        another.absolute(4);
        assertFalse(another.rowUpdated());
        jrs.absolute(4);
        assertTrue(jrs.rowUpdated());
    }
}
项目:cn1    文件:JoinRowSetWebrowSetTest.java   
public void testWriteXmlLResultSet() throws Exception {
    StringWriter writer = new StringWriter();
    rs = st.executeQuery("select * from user_info");
    jrs.writeXml(rs,writer);

    JoinRowSet jrs2 = newJoinRowSet();
    jrs2.readxml(new StringReader(writer.getBuffer().toString()));
    assertCachedRowSetEquals(crset,jrs2);
}
项目:freeVM    文件:JoinRowSetWebrowSetTest.java   
public void testreadxml_Empty() throws Exception {
    jrs = newJoinRowSet();
    jrs.addRowSet(crset,another);
}

matlab中fopen 打开文件或获得有关打开文件的信息

matlab中fopen 打开文件或获得有关打开文件的信息

参考:https://ww2.mathworks.cn/help/matlab/ref/fopen.html?searchHighlight=fopen&s_tid=doc_srchtitle

 

个人认为返回的标识符是一个文件句柄handle, 网上的解释是: MATLAB® 保留文件标识符 012 分别用于标准输入、标准输出(屏幕)和标准错误。

 

fopen

打开文件或获得有关打开文件的信息

全页折叠

语法

fileID = fopen(filename)
fileID = fopen(filename,permission)
fileID = fopen(filename,permission,machinefmt,encodingIn)
[fileID,errmsg] = fopen(___)
fIDs = fopen(''all'')
filename = fopen(fileID)
[filename,permission,machinefmt,encodingOut] = fopen(fileID)
 

说明

示例

fileID = fopen(filename) 打开文件 filename 以便以二进制读取形式进行访问,并返回等于或大于 3 的整数文件标识符。MATLAB® 保留文件标识符 012 分别用于标准输入、标准输出(屏幕)和标准错误。

如果 fopen 无法打开文件,则 fileID-1

fileID = fopen(filename,permission) 将打开由 permission 指定访问类型的文件。

示例

fileID = fopen(filename,permission,machinefmt,encodingIn) 使用 machinefmt 参数另外指定在文件中读写字节或位时的顺序。可选的 encodingIn 参数指定与文件相关联的字符编码方案。

示例

如果 fopen 打开文件失败,则 [fileID,errmsg] = fopen(___) 还将返回一条因系统而异的错误消息。否则,errmsg 是一个空字符向量。您可以将此语法与前面语法中的任何输入参数结合使用。

示例

fIDs = fopen(''all'') 返回包含所有打开文件的文件标识符的行向量。为标准输入、输出以及错误而保留的标识符不包括在内。向量中元素的数量等于打开文件的数量。

filename = fopen(fileID) 返回上一次调用 fopen 在打开 fileID 指定的文件时所使用的文件名。输出文件名将解析到完整路径。fopen 函数不会从文件读取信息来确定输出值。

示例

[filename,permission,machinefmt,encodingOut] = fopen(fileID) 还会返回上一次调用 fopen 在打开指定文件时所使用的权限、计算机格式以及编码。如果是以二进制模式打开的文件,则 permission 会包含字母 ''b''encodingOut 输出是一个标准编码方案名称。fopen 不会从文件读取信息来确定这些输出值。无效的 fileID 会为所有输出参数返回空字符向量。

 

示例

全部折叠

打开文件并将标识符传递给文件 I/O 函数

打开文件并将文件标识符传递给 fgetl 函数以读取数据。

打开文件 tsunamis.txt 并获取文件标识符。

fileID = fopen(''tsunamis.txt'');

fileID 传递给 fgetl 函数以从文件读取一行。

tline = fgetl(fileID)
tline =

  ''A global tsunami data set in xlsx format, comprising the following file:''

关闭文件。

fclose(fileID)

请求要打开的文件的名称

创建一条提示,要求提供待打开文件的名称。如果 fopen 无法打开文件,则显示相关错误消息。

fileID = -1;
errmsg = '''';
while fileID < 0 
   disp(errmsg);
   filename = input(''Open file: '', ''s'');
   [fileID,errmsg] = fopen(filename);
end

打开要写入的文件并指定访问类型、写入顺序、字符编码

打开一个文件,使用 Shift-JIS 字符编码写入到文件。

fileID = fopen(''japanese_out.txt'',''w'',''n'',''Shift_JIS'');

''w'' 输入指定写入权限,''n'' 输入指定本机字节排序方式,''Shift_JIS'' 指定字符编码方案。

获取有关已打开文件的信息

假定您以前使用 fopen 打开了文件。

fileID = fopen(''tsunamis.txt'');

获取所有已打开文件的文件标识符。

fIDs = fopen(''all'')
fIDs =

     3

获取已打开文件的文件名称及字符编码。使用 ~ 代替您希望省略的输出参数。

[filename,~,~,encoding] = fopen(fileID)
filename =

    ''matlabroot\toolbox\matlab\demos\tsunamis.txt''


encoding =

    ''windows-1252''

这里显示的输出内容有代表性。您的结果可能有所不同。

输入参数

全部折叠

filename - 要打开的文件的名称
字符向量或字符串标量

要打开的文件名称(含文件扩展名),指定为字符行向量或字符串标量。如果该文件不在当前文件夹中,则 filename 必须包含完整或相对路径。

在 UNIX® 系统上,如果 filename''~/''''~username/'' 开头,则 fopen 函数分别延长路径至当前用户或指定用户的主目录。

  • 如要打开有读取权限的文件而该文件不在当前文件夹中,则 fopen 将沿 MATLAB 搜索路径进行搜索。

  • 如要打开有写入或追加权限的文件而该文件不在当前文件夹中,则 fopen 将在当前目录中创建一个文件。

示例: ''myFile.txt''

数据类型: char | string

permission - 文件访问类型
''r'' (默认) | ''w'' | ''a'' | ''r+'' | ''w+'' | ''a+'' | ''A'' | ''W'' | ...

文件访问类型,指定为字符向量或字符串标量。您可以用二进制模式或文本模式打开文件。在 UNIX 系统上,两种转换模式具有相同的效果。要以二进制模式打开文件,请指定以下各项之一。

''r''

打开要读取的文件。

''w''

打开或创建要写入的新文件。放弃现有内容(如果有)。

''a''

打开或创建要写入的新文件。追加数据到文件末尾。

''r+''

打开要读写的文件。

''w+''

打开或创建要读写的新文件。放弃现有内容(如果有)。

''a+''

打开或创建要读写的新文件。追加数据到文件末尾。

''A''

打开文件以追加(但不自动刷新)当前输出缓冲区。

''W''

打开文件以写入(但不自动刷新)当前输出缓冲区。

要以文本模式打开文件,请将字母 ''t'' 附加到 permission 参数,例如 ''rt''''wt+''

在 Windows® 系统上,以文本模式:

  • 读取操作如果遇到回车符后加换行符 (''\r\n''),则会从输入中删除回车符。

  • 写入操作在输出中的任何换行符之前插入一个回车符。

如果要在 MATLAB 中写入文件,则以文本模式打开或创建新文件,然后在 Microsoft® 记事本或不会将 ''\n'' 识别为换行符序列的任意文本编辑器中打开该文件。写入文件时,用 ''\r\n'' 结束每行。有关示例,请参阅 fprintf。否则,请以二进制模式打开文件以获得更佳的性能。

要读写同一文件:

  • 采用带加号 ''+''permission 值打开文件。

  • 在读写操作之间调用 fseekfrewind。例如,不在调用 fread 后调用 fwrite,或调用 fwrite 后调用 fread,除非在它们之间调用 fseekfrewind

数据类型: char | string

machinefmt - 读取或写入字节或位的顺序
''n'' (默认) | ''b'' | ''l'' | ''s'' | ''a'' | ...

在文件中读取或写入字节或位的顺序,指定为以下字符向量或字符串标量之一。

 

''n''''native''

系统字节排序方式(默认)

''b''''ieee-be''

Big-endian 排序

''l''''ieee-le''

Little-endian 排序

''s''''ieee-be.l64''

Big-endian 排序,64 位长数据类型

''a''''ieee-le.l64''

Little-endian 排序,64 位长数据类型

默认情况下,当前支持的所有平台都使用 little-endian 排序方式对新文件进行排序。现有二进制文件可以使用 big-endian 或 little-endian 排序方式。

数据类型: char | string

encodingIn - 字符编码
''UTF-8'' | ''ISO-8859-1'' | ''windows-1251'' | ''windows-1252'' | ...

后续读写操作使用的字符编码,包括 fscanffprintffgetlfgetsfread 以及 fwrite,指定为字符向量或字符串标量。该字符向量或字符串标量必须包含标准字符编码方案名称,如下所示。

''Big5''

''ISO-8859-1''

''windows-874''

''Big5-HKSCS''

''ISO-8859-2''

''windows-949''

''CP949''

''ISO-8859-3''

''windows-1250''

''EUC-KR''

''ISO-8859-4''

''windows-1251''

''EUC-JP''

''ISO-8859-5''

''windows-1252''

''EUC-TW''

''ISO-8859-6''

''windows-1253''

''GB18030''

''ISO-8859-7''

''windows-1254''

''GB2312''

''ISO-8859-8''

''windows-1255''

''GBK''

''ISO-8859-9''

''windows-1256''

''IBM866''

''ISO-8859-11''

''windows-1257''

''KOI8-R''

''ISO-8859-13''

''windows-1258''

''KOI8-U''

''ISO-8859-15''

''US-ASCII''

 

''Macintosh''

''UTF-8''

 

''Shift_JIS''

 

如果您不指定编码方案,fopen 将使用系统的默认编码方案打开文件进行处理。有关详细信息,请参阅使用不同的字符编码打开文件。

如果为编码指定的值不在支持的值列表中,则 MATLAB 会发出警告。有时(并非总是)指定其他编码名称会产生正确的结果。

数据类型: char | string

fileID - 已打开文件的文件标识符
整数

已打开文件的文件标识符,指定为整数。

数据类型: double

提示

  • 在大多数情况下,不必以文本模式打开文件。MATLAB 导入函数、所有 UNIX 应用程序以及 Microsoft Word 和写字板都将 ''\n'' 识别为换行指示符。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

用法说明和限制:

 

  • 代码生成不支持:

    • 输入参数 machinefmtencodingInfileID

    • 输出参数 errmsg

    • 语法 fopen(''all'')

    • 以文本模式打开文件。即 permission 参数不能包含字母 t。例如,值不能为 ''rt''

  • permission 参数最多可以包含三个字符。字符必须是唯一的。

  • 如果您禁用外部调用,则不能将使用 fopen 创建的文件标识符返回给 MATLAB 函数或外部函数。这些文件标识符只能在内部使用。

  • 生成 C/C++ 可执行文件、静态库或动态库时,最多可以打开 20 个文件。

  • 生成的代码不会报告因文件标识符无效而产生的错误。请在您自己的 MATLAB 代码中自行编写文件打开错误处理程序。测试 fopen 是否返回 -1,此值表示文件打开失败。例如:

    ...
    fid = fopen(filename, ''r'');
    if fid == -1
    		% fopen failed
    
    else
    % fopen successful, okay to call fread
    A = fread(fid);
    ...

     

  • 当您执行以下操作时,生成的代码对于 fread 的行为取决于编译器:

    1. 使用 fopena+ permission 打开文件。

    2. 在调用设置文件位置指示符的 I/O 函数(如 fseekfrewind)之前,使用 fread 读取文件。

 

OpenRead方法打开文件并读取

OpenRead方法打开文件并读取

实现效果:

  

知识运用
  File类的OpenRead方法    //实现打开现有文件以进行读取

  public static FileStream OpenRead(string path)

  FileStream类的Read方法  //实现从流中读取字节块并将该数据写入给定的缓冲区

  public overrider int Read (byte[] array, int offset, int count)

  补充:Encoding类的GetStrin方法  //实现将字节数组解码为对应的字符串

实现代码:

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog OFDialog = new OpenFileDialog();
                OFDialog.Filter = "文本文件(*.txt)|*.txt";
                OFDialog.ShowDialog();
                textBox1.Text = OFDialog.FileName;
                FileStream fs = File.OpenRead(textBox1.Text);
                byte[] bt=new byte[1024];
                while(fs.Read(bt,0,bt.Length)>0)
                {
                    textBox2.Text = Encoding.UTF8.GetString(bt);
                }
            }
            catch (Exception)
            { MessageBox.Show("请选择文件"); }
        }

  

openrowset

openrowset

    包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个

今天关于使用SQL凭据通过OpenRowSet打开文件的介绍到此结束,谢谢您的阅读,有关javax.sql.rowset.JoinRowSet的实例源码、matlab中fopen 打开文件或获得有关打开文件的信息、OpenRead方法打开文件并读取、openrowset等更多相关知识的信息可以在本站进行查询。

本文标签: